|
|
#1 (permalink) |
|
Guest
Posts: n/a
|
I've heard that there may be a bug in this area, but that's just rumor. The
behavior is that only the first row in the ServiceControl table is inspected, so RM doesn't know that the service will be stopped. Does that look relevant here? -- Phil Wilson The Definitive Guide to Windows Installer http://www.apress.com/book/view/1590592972 "Nick Hall" <NickHall@discussions.microsoft.com> wrote in message news:46A38841-2528-4C62-9DBE-5FF59440F3BB@microsoft.com... > Our application installs a Microsoft Exchange agent (Exchange 2007, > Windows > Server 2008) using a Wix-authored MSI. The dll gets loaded by the > Exchange > Transport Service. I've added a ServiceControl element to stop and start > the > service which seems to work OK. The problem is that when the application > is > being uninstalled I get a dialog telling me that a reboot will be > required. > If I OK this, the uninstall functions correctly without the reboot (as by > the > time the files are uninstalled the service has been stopped). > > I believe that the problem is due to the way that the Exchange service is > implemented. The service executable is called MSExchangeTransport.exe > which > then uses a process called EdgeTransport.exe to host our dll. Because the > dll is not being hosted directly by the service, Restart Manager is not > correctly recognizing that there is not a problem. > > This is the contents of the uninstall log pertaining to the reboot > request: - > > MSI (s) (78:0C) [18:28:22:904]: RESTART MANAGER: Did detect that a > critical > application holds file[s] in use, so a reboot will be necessary. > MSI (s) (78:0C) [18:28:22:904]: Note: 1: 1610 MSI (s) (78:0C) > [18:29:08:864]: RESTART MANAGER: The user chose to go on with the > installation, although a reboot will be required. > > Is there any way, using a custom action or via another method that I can > somehow let Restart Manager know the dlls held by EdgeTransport should not > prevent uninstall (as the process will be terminated when its parent > service > shuts down)? > > Thanks, > > Nick Hall > |
|
|
|
#2 (permalink) |
|
Guest
Posts: n/a
|
Our application installs a Microsoft Exchange agent (Exchange 2007, Windows
Server 2008) using a Wix-authored MSI. The dll gets loaded by the Exchange Transport Service. I've added a ServiceControl element to stop and start the service which seems to work OK. The problem is that when the application is being uninstalled I get a dialog telling me that a reboot will be required. If I OK this, the uninstall functions correctly without the reboot (as by the time the files are uninstalled the service has been stopped). I believe that the problem is due to the way that the Exchange service is implemented. The service executable is called MSExchangeTransport.exe which then uses a process called EdgeTransport.exe to host our dll. Because the dll is not being hosted directly by the service, Restart Manager is not correctly recognizing that there is not a problem. This is the contents of the uninstall log pertaining to the reboot request: - MSI (s) (78:0C) [18:28:22:904]: RESTART MANAGER: Did detect that a critical application holds file[s] in use, so a reboot will be necessary. MSI (s) (78:0C) [18:28:22:904]: Note: 1: 1610 MSI (s) (78:0C) [18:29:08:864]: RESTART MANAGER: The user chose to go on with the installation, although a reboot will be required. Is there any way, using a custom action or via another method that I can somehow let Restart Manager know the dlls held by EdgeTransport should not prevent uninstall (as the process will be terminated when its parent service shuts down)? Thanks, Nick Hall |
|
|
|
#3 (permalink) |
|
Guest
Posts: n/a
|
NH> Is there any way, using a custom action or via another method that I
NH> can somehow let Restart Manager know the dlls held by EdgeTransport NH> should not prevent uninstall (as the process will be terminated when NH> its parent service shuts down)? If this is happening in the execute sequence, can you stop the service before RM has looked? Vadim Rapp |
|