views:

507

answers:

3

This is my situation.

I have two programs. Lets call them program A and Program B. They both use WIX to create the MSI packages.

A is a WindowsService, B is a Windows WCF Service

When I install the services, A and B installs without issue. Without turning on the services..

When I try to uninstall either A or B (order does not matter), the installed information does not get removed from the registry and the service still shows up on the service management console. The files in the directory are removed however.

I have to go to a command prompt and manually type in "sc delete A.exe (or B.exe)" in order for the service to be removed from the registry and service management console.

After that is done, the second program to be uninstall will uninstall without issue.

It doesn't matter which program I try to uninstall first, the result are the same.

I don't know what dependencies or whatever is causing the uninstall process to not be able to uninstall the first program completely..

If you guys have any ideas, please help .. going crazy.. !!!

Baku

A: 
  1. Do you have duplicates GUIDs in the setups? check that the Component guids are unique and no guid is used in both setups.
  2. Are you using ServiceInstall to remove the service on uninstall?
Shay Erlichmen
Where can I find the Component guids? are you talking about the WIX upgradecode or the project assembly guid? My upgradecodes are different and my services assembly guids are different..
Baku
I'm using AddRemove programs, uninstall to remove the program(service).
Baku
@Baku, you want to look at the Component/@Guid attributes. This description makes it sound like you are hitting Component Rules: http://robmensching.com/blog/posts/2003/10/18/Component-Rules-101
Rob Mensching
A: 

I have had to use the Microsoft Windows Installer CleanUp Utility before. Can be found here.

JBrooks
Ug, don't use MsiZap (or the UI wrapper called "Windows Installer CleanUp Utility). It doesn't clean up: http://robmensching.com/blog/posts/2009/3/6/More-on-Haacks-Troubleshooting-Windows-MSI-Installers
Rob Mensching
The blog you reference seems to agree with how it is being viewed here: "...MSIZap is a last resort tool..." I thought that is what we were talking about here since the original question had "please help .. going crazy.. !!!" and my response had "I have had to use..." Trust me, I had tried everything else and then the CleanUp Utility worked for me. Even the Wiki has " a last ditch attempt " which I agree with. The Wiki also explains exactly what is going on. The wiki can be found: http://en.wikipedia.org/wiki/Windows_Installer_CleanUp_Utility
JBrooks
A: 

Here's how corresponding section looks in my WiX file:

<ServiceInstall Arguments="CdiTranIdSvc" Account="$(var.SvcUserDomain)\$(var.SvcUserLogin)" Password="$(var.SvcUserPassword)" Id="ServiceInstallTranIdentification" Name="CdiTranIdSvc" Type="ownProcess" Start="auto" ErrorControl="normal" DisplayName="CDI Transactions Identification">

<ServiceControl Id="ServiceControlTranIdentification" Name="CdiTranIdSvc" Start="install" Stop="uninstall" Remove="uninstall">
zvolkov