This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Multiple instance & .NET installer deinstallation problem
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 08, 2010
04:32 AM
Multiple instance & .NET installer deinstallation problem
I 've written a Windows service in .NET.
To install this service it needs installUtill.exe to be executed.
Created an Installshield Basic MSI project.
Added properties SERVICE_NAME and SERVICE_DISPLAY_NAME, which are used on the components .NET settings in the .NET installer class.
Added an extra instance in the installer release configuration, so the service can be installed twice (to enable clustering...)
In this instance the properties SERVICE_NAME, SERVICE_DISPLAY_NAME ProductCode and ProductName are set to new defaults.
Installation of both instaces works perfect.
Uninstal of the extra instance doesn't execute the .NET installer custom actions
Uninstal of the first instance works OK.
Attached you find the log files from deinstalling both instances.
Search for "/ServiceName=" which is passed to installUtil.exe to override the servicename for the .NET service installer.
Is this a bug in Installshield 2010 sp1 or is there a workaround?
To install this service it needs installUtill.exe to be executed.
Created an Installshield Basic MSI project.
Added properties SERVICE_NAME and SERVICE_DISPLAY_NAME, which are used on the components .NET settings in the .NET installer class.
Added an extra instance in the installer release configuration, so the service can be installed twice (to enable clustering...)
In this instance the properties SERVICE_NAME, SERVICE_DISPLAY_NAME ProductCode and ProductName are set to new defaults.
Installation of both instaces works perfect.
Uninstal of the extra instance doesn't execute the .NET installer custom actions
Uninstal of the first instance works OK.
Attached you find the log files from deinstalling both instances.
Search for "/ServiceName=" which is passed to installUtil.exe to override the servicename for the .NET service installer.
Is this a bug in Installshield 2010 sp1 or is there a workaround?
(6) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 26, 2010
12:34 PM
I'm encountering the same problem...
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 08, 2010
12:45 PM
Hello,
I´m trying do something similiar, but facing the same problem, have u guys find a way to solve this?¿
Tnks in advance
I´m trying do something similiar, but facing the same problem, have u guys find a way to solve this?¿
Tnks in advance
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 08, 2010
11:04 PM
MarcelS wrote:
I 've written a Windows service in .NET.
To install this service it needs installUtill.exe to be executed.
No it doesn't.
http://blog.deploymentengineering.com/2006/07/msi-vs-net.html
Take your EXE, make it the keyfile of it's own component and drill down to advanced | services and just declare your service and it's events. You don't need custom actions. Further, if you want each instance to have it's own service that's no problem either because the ServiceInstall table's Name column is of type formatted. You can use properties to transform the service for each instance.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 09, 2010
03:06 AM
If your exe is just a plain service it doesn't, just as Christopher describes.
But if it depends on other .NET installer classes (like ours also includes a WMI provider) you want the custom action.
We worked around the problem by including the service and dependencies twice in the project. Then through propertie settings let the isntaller only installing one file for one instance. Then the custom_actions are executed as expected.
But if it depends on other .NET installer classes (like ours also includes a WMI provider) you want the custom action.
We worked around the problem by including the service and dependencies twice in the project. Then through propertie settings let the isntaller only installing one file for one instance. Then the custom_actions are executed as expected.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 09, 2010
10:46 AM
Hi,
Be trial and error i was correcting the problem, but what i have now htis: 2 instances of the same service (no files duplicates), it works fine for the install and uninstall for 1 instance, but when install 2 instances and try to remove them, in the Service control panel(Services.msc) the first one remain, (the folders are deleted, and the reference in "add/remove programs" are removed), i have see this problem in other post, but no one says if is product problem o developer problem, can u tell wich is it?¿, and what should do.
Many Tanks.
Be trial and error i was correcting the problem, but what i have now htis: 2 instances of the same service (no files duplicates), it works fine for the install and uninstall for 1 instance, but when install 2 instances and try to remove them, in the Service control panel(Services.msc) the first one remain, (the folders are deleted, and the reference in "add/remove programs" are removed), i have see this problem in other post, but no one says if is product problem o developer problem, can u tell wich is it?¿, and what should do.
Many Tanks.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 09, 2010
08:07 PM
MarcelS wrote:
If your exe is just a plain service it doesn't, just as Christopher describes.
But if it depends on other .NET installer classes (like ours also includes a WMI provider) you want the custom action.
We worked around the problem by including the service and dependencies twice in the project. Then through propertie settings let the isntaller only installing one file for one instance. Then the custom_actions are executed as expected.
You shouldn't use an Installer class for the WMI provider either. Install Util is evil. I'm serious. I've never studied how to deploy a WMI provider but if it really can't be done using native MSI and you must have a custom action, you want to use WiX DTF. Schedule the custom action to run prior to StartServices so that you can still use standard MSI to create and start the service.