...now again with signature disabled as this seems to break the size-limit of
the mailing-list...
Even if the other solution with the named object sounds like the most elegant
version, I'd
would probably go with the simplest (k.i.s.s), as the room for breakage is the
least
(and not being totally unselfish, I see hope that this might still slip into
the 3.8 release,
whereas the other one would probably need more coding & testing ;-)
Concerning the run-key-approach: so that would mean in case the local system
has on
OS lower than Vista, the Run-key is used instead of the RunOnce - correct?
_____
Von: Rob Mensching [mailto:r...@robmensching.com]
Gesendet: Freitag, 8. November 2013 16:13
An: WiX toolset developer mailing list
Betreff: Re: [WiX-devs] Issue & possible solution: Burn Startup-Screen is shown
twice (on Windows XP) if bootstrapper contains driver-installation
What if on XP Burn writes to the Run key instead? That's actually what we did
in for all OSes in the early days of Burn. We had to move to the RunOnce key to
ensure on restart the Bundle launched elevated and the user would not be
prompted for elevation post-restart. Fortunately, on XP we don't have to worry
about elevation.
This could also be the most straight forward fix if it works. I'm hoping the
"runonce.exe" just runs the runonce key. <smile/>
From: Neil Sleightholm [mailto:n...@x2systems.com]
Sent: Friday, November 8, 2013 6:41 AM
To: WiX toolset developer mailing list
Subject: Re: [WiX-devs] Issue & possible solution: Burn Startup-Screen is shown
twice (on Windows XP) if bootstrapper contains driver-installation
That sounds workable, If the engine detects a restart it would need to re-write
the run-once key.
Hmm,
An oversimplification would be:
Create a named event/mutex/semaphore (pick your poison) using either
per-user or per-machine namespace depending on if this is a per-user or
per-machine install.
Store this sync object name in the session state so on restart the BA can
look for it.
Write the run once key
<Let the engine do all the other fun stuff it is doing>
Clear the sync object name from the session
Release the sync object and exit
I'd strongly advise against adding any more options to the command line, as
we have had issues already today w/ the command line and options exceeding
MAX_PATH.
From: Tobias Erichsen [mailto:i...@tobias-erichsen.de]
Sent: Friday, November 08, 2013 8:22 AM
To: WiX toolset developer mailing list
Subject: Re: [WiX-devs] Issue & possible solution: Burn Startup-Screen is
shown twice (on Windows XP) if bootstrapper contains driver-installation
The PID will always be different, since it is a new process created by the
service.exe system-component.
I want to make sure that if it is executed, a prior reboot indeed occured -
otherwise the process will
shut down immediately without doing anything (and not even showing a
user-interface)
_____
Von: John Cooper [jocoo...@jackhenry.com<mailto:jocoo...@jackhenry.com>]
Gesendet: Freitag, 8. November 2013 15:07
Bis: WiX toolset developer mailing list
Betreff: Re: [WiX-devs] Issue & possible solution: Burn Startup-Screen is
shown twice (on Windows XP) if bootstrapper contains driver-installation
Have you considered a UNIX-like approach like passing the PID? Burn could
easily check it's PID against the passed value to see if it is already running.
--
John Merryweather Cooper
Build & Install Engineer -- ESA
Jack Henry & Associates, Inc.(r)
Shawnee Mission, KS 66227
Office: 913-341-3434 x791011
jocoo...@jackhenry.com<mailto:jocoo...@jackhenry.com>
www.jackhenry.com<http://www.jackhenry.com>
From: Tobias Erichsen [mailto:i...@tobias-erichsen.de]
Sent: Friday, November 8, 2013 3:18 AM
To: wix-devs@lists.sourceforge.net<mailto:wix-devs@lists.sourceforge.net>
Subject: [WiX-devs] Issue & possible solution: Burn Startup-Screen is shown
twice (on Windows XP) if bootstrapper contains driver-installation
Problem:
========
When burn is used to install one or more MSI-packages (very probably also
exe-packages) on Windows XP
and one of the packages contains a driver install, the burn-bootstrapper is
started a second time
during the installation-chain, showing the startup-screen once more
erroneously.
The install itself is going through successfully and the final "Success"
screen is shown at the end.
This is very annoying, as the second startup-screen will confuse customers
to think that the
installation did not go through correctly.
This behavior does not show up on Windows 7 or 8.
Analysis:
=========
During analysis using the Process-Monitor-Tool I discovered that the second
(erroneously shown)
burn startup-screen was shown by the bootstrapper that is instantiated by
the runonce executable
(complete process-chain: services.exe -> msiexec.exe -> msiexec.exe ->
runonce.exe -> burn_bootstrapper.exe)
Being instantiated from runonce.exe and also the specific commandline
provided to the bootstrapper
(/burn.runonce) revealed that the bootstrapper was re-run due to it being
written to the RunOnce
registry-key.
Burn writes this RunOnce registry-key to restart itself in case of reboot
during the package-installation-
chain.
Unfortunately it seems like this RunOnce feature is executed prematurely.
There are two links to this topic that someone mentioned on the wix-users
mailing-list:
http://blogs.msdn.com/b/junfeng/archive/2006/09/19/761765.aspx
http://support.microsoft.com/kb/281820
It seems like a driver-installation might fire the RunOnce-registry-keys due
to driver-infs having
the feature to also contain RunOnce options that the driver-install-creator
might want to have
executed post inf-installation.
Obviously this interferes with the RunOnce usage of burn.
There are two sub-problems:
Part 1:
=======
The errouneous display of a second installer startup-screen.
Part 2:
=======
The intended use for RunOnce in burn is foiled due to the Registry-Key being
deleted by the
premature firing of the RunOnce condition.
Solution Part 1
===============
Is possibly fixed very easy. The commandline written into the RunOnce-key
must be expanded to
contain some kind of information for the new (RunOnce-initated) burn-process
to find out whether it
is still running in the same boot-session, or an intermediate boot has
occurred.
If it is still the same session, the burn-process should stop immediately,
showing no user-interface.
If it detects a reboot in between it will proceed like intended.
Two methods for detection come to mind:
a.) add the current-time (in UTC) to the command-line.
This way the RunOnce-initiated detection can use its current time & the time
since the last boot to
find out if a reboot has taken place in between.
b.) In case some unique ID (GUID?) exists that Windows sets to a new value
on each reboot, this might
be put on the commandline & checked by the RunOnce-initiated burn-instance.
Any pointers to such an
id would be highly welcome...
Solution Part 2
===============
I'm not 100% sure about the total burn-architecture, so my proposal might
interfere with other features...
Instead of calling the UpdateResumeMode function (in registration.cpp) once
at the start of the install,
it should be called once before each package in a chain.
This way it gets refreshed in case one of the packages cause the RunOnce
action to be fired prematurely.
I'd be happy to get feedback on my ideas...
Best regards,
Tobias
NOTICE: This electronic mail message and any files transmitted with it are
intended
exclusively for the individual or entity to which it is addressed. The
message,
together with any attachment, may contain confidential and/or privileged
information.
Any unauthorized review, use, printing, saving, copying, disclosure or
distribution
is strictly prohibited. If you have received this message in error, please
immediately advise the sender by reply email and delete all copies.
------------------------------------------------------------------------------
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-devs