On 17.02.2010 17:34, Steve Borho wrote:
> On Wed, Feb 17, 2010 at 9:50 AM, Adrian Buehlmann <adr...@cadifra.com> wrote:
>> (cc-ing thg-dev, hoping this is ok. It might be useful for thg
>> development and others as well)
>>
>> On 17.02.2010 15:00, Yuki KODAMA wrote:
>>> Hi Adrian,
>>>
>>> I was asked by my friend (TortoiseBZR developer) about
>>> a new *rebootless* THG installer.  In general, an application which
>>> uses Windows shell extension has to reboot after installing/upgrading it.
> 
> It's nice to hear you're in contact with a TortoiseBZR developer.  I
> wish one of them would hang out here so we could potentially
> collaborate more.  We owe them a lot for the initial annotate and log
> graph code, and various other bits.
> 
>>> However, Steve's annouce says that THG's new installer can upgrade/
>>> downgrade/package-change without reboot.  I don't know details about
>>> THG's WIX installer, so I couldn't answer to his question then.
>>>
>>> Does the *rebootless* feature come from WIX toolset/framework?
>>> Or are there a kind of technics for it?
>>
>> As I understand it, it's not related to WiX.
>>
>> It is a feature of Windows Installer.
>>
>> WiX is "just" a toolset to generate Windows installer database files (*.msi).
>>
>> "The Windows Installer (previously known as Microsoft Installer) is an
>> engine for the installation, maintenance, and removal of software on
>> modern Microsoft Windows systems." [1]
>>
>> Windows installer is a part of Windows. It maintains a database of what
>> components are installed and runs as a service (msiserver). It also has a
>> client part that talks to the server when the user starts an installation.
>>
>> When a package is installed, Windows Installer does several actions.
>> One such action is InstallValidate [2].
>>
>> In this action, Windows installer detects which running process has what
>> exe or dll in use, that needs to be exchanged (upgrade/downgrade install).
>>
>> The user interface then offers the user to (A) shutdown the respective
>> processes and restart them (in case of explorer, restart works). But the
>> user may also choose not to shutdown the affected programs, but (B) instead
>> schedule the exchange of the files for a reboot. Option (A) is preselected.
>>
>> I've uploaded a screenshot here:
>> http://bitbucket.org/abuehl/thg-abuehl/downloads/ValidatingInstall-Windows7-shot1.PNG
>>
>> For the first install (no previously installed thg shell extension), the
>> user needs to logout/login or restart explorer [3] himself for the shell
>> extension dll to initialize the overlay icon handlers. It seems the context
>> menu handlers get initialized on first context menu opening. So for the
>> context menu, it works even without logout/login for the first install case.
>>
>> [1] http://en.wikipedia.org/wiki/Windows_Installer
>> [2] http://msdn.microsoft.com/en-us/library/aa369546(VS.85).aspx
>> [3] 
>> http://www.addictivetips.com/windows-tips/how-to-restart-explorer-exe-process-properly-in-windows-xp-and-vista
> 
> 
> Very recent thread on the tsvn list:
> 
> http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2447781

Case in point. I did the following test on Windows 7 x64:

I have started Notepad, typed a bit, did a file open, canceled the file open
(so that the shell extension dll was loaded into the Notepad process -- due to 
the
"file open" dialog).

Then left Notepad running with the file unsaved.

Then started our msi installer to do a downgrade install.

InstallValidate then listed Notepad and explorer as programs holding files
open.

Then I choose to let Windows Installer close the apps (other option was: 
schedule
file exchange for reboot).

Then I got a message box:
'''
The setup was unable to automatically close all requested applications. Please 
ensure
that the applications holding files in use are closed before continuing with the
installation.
'''

Next dialog shows the list of programs again with a request to close them.
With Exit, Ignore and Retry buttons.

So it is mostly in the hands of the user now, to avoid a reboot.


------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to