cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Mescalero
Level 7

multi-instance services not removed

Hello,

I've seen the subject raised here, but haven't been able to track down a solution: in a multiple instance install, the services install successfully in the Services Control Module, but upon Remove, only the base instance is unregistered from SCM.

This is an IS 2010 Basic MSI project, and I'm curious whether this is a known issue (i.e., bug). Thanks to anyone out there who has knowledge of this and is willing to share it. 😄
Labels (1)
0 Kudos
(6) Replies
hidenori
Level 17

I guess that the components associated with your services are not getting uninstalled for some reasons. Have you tried creating a verbose log of the installation? That might help identify the issue.
0 Kudos
Christopher_Pai
Level 16

I've written a multiple instance install that had a service and I never saw this problem. I second looking at the log file and trying to see why the component isn't being removed.
0 Kudos
Mescalero
Level 7

Sorry guys, for the late response. (So much for the thread alerts!)

The files themselves (and parent components) are being removed, except for those that I wish to remain on the machine (e.g., configuration file for the service).

Interestingly, it isn't the base instance whose service is removed, but whichever instance I remove LAST. So, for instance, with three instances, the first two removes do not uninstall the respective service instance, but the final remove does, in whatever order I decide to remove them. Hope that makes sense.

What might I look for in the verbose log? It looks rather normal...
0 Kudos
Mescalero
Level 7

Hello,

I do indeed have components that are not being removed. The files within are, but since this is a multi-instance install, that would seem to explain why the first Remove is unsuccessful in deleting reg and SCM entries.

If the Component Codes are the same between the two instances, would that explain this behavior? And if so, how does one change those GUIDs between instances?

Also, the [InstanceId] property is not being resolved in the path of the components, although it is for the registry and SCM entries. (So the path on the target machine literally becomes \Program Files\\[InstanceId].) Not sure if that plays a role in the components being set to "Action: File Absent" during the first uninstall.

I must either not understand some fundamental Windows Installer concept that drives the multi-instance functionality, or it's hopelessly unwieldy.
0 Kudos
hidenori
Level 17

To keep the nonfile data of each instance isolated, the base package should collect nonfile data into sets of components for each instance. The appropriate components should then be installed based on conditional statements that depend on the instance identifier. Regarding to the formatted text string in the path of the components, please refer to Q111409: HOWTO: Setting a Directory Dynamically.

Hope that helps.
0 Kudos
Mescalero
Level 7

Thanks, Hidenori, that is quite helpful. I wish there was an easier way to differentiate/isolate the instance data, as I may allow the user up to 10 or so instances of this application. But so long as there is indeed a way... 😉

Thanks again.
0 Kudos