You have a component rules violation. Windows Installer requires different components to have entirely independent contents.
You have various options: some good, some bad. A. Require release N-1 be removed entirely to install release N. A major upgrade can do this automatically. B. Rename the COM dll in release N to be the same as it was in N-1 but with a higher file version. Don't change the installer component definition. C. Create an entirely new installer component and new COM dll with different registry keys, prog Ids, classes and interfaces and rewrite the code to use it - if the COM component uses any system resources, it will have to manage sharing of them with the previous version. D. Keep everything as it is but require a repair to be run on the remaining installer when one is removed. If you uninstall via a chainer, you might be able to automate this. Be warned, if you install N followed by N-1, the N-1 COM component will be the one being used (assuming the COM ID didn't change). Your choice will depend on which restrictions cannot be removed. -----Original Message----- From: Sohail Somani [mailto:soh...@taggedtype.net] Sent: 17 September 2010 19:09 To: wix-users@lists.sourceforge.net Subject: [WiX-users] Same Component GUID, different key path What are the implications of two files having the same component GUID but different key paths in different installers? Some background: * Release N-1 has a COM component with component guid G and the key path COMDll${N-1}.dll with related registry keys as part of the component * Release N has a COM component with the same COM interface guid along with the same component guid G but the key path is instead COMDll${N}.dll Release N is written with WiX and N-1 uses InstallShield. The reason the installer was done this way was because we found when uninstalling the trial of Release N, the registration would be removed for the new component and Release N-1 would no longer work. Bad! I realize this is a physical application design problem (the COM components are poorly versioned.) The problem I have in the above situation is when I uninstall Release N-1 with Release N also installed, it uninstalls the component with guid G. When this happens, Release N no longer works as the relevant registry keys are deleted. This happens even though the reference count appears to be 2. I say appears to be because I see the following in the log file: RegClassInfoUnregister(Feature=NewFeature1,Component=${GUID}[~]2,FileNam e=TOKEN,ClsId=...) I'm presuming that the [~]2 means that there are two references to the GUID but I'm not sure. I can't really find any information on this log statement. So my question is: is there a way to have the uninstall of Release N-1 leave a component with a specific GUID "installed twice" in place even though the key paths are different? Is the key path causing a problem? I also realize this is a MSI question more than a WiX question but I have found this user group to be very knowledgeable so I hope that this slightly tangential topic will be of interest to someone! Thanks for your time :) ------------------------------------------------------------------------ ------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users </pre> <BR style="font-size:4px;"> <a href = "http://www.sdl.com"><img src="http://www.sdl.com/images/email logo_150dpi-01.png" alt="www.sdl.com" border="0"/></a> <BR> <font face="arial" size="2"><a href = "http://www.sdl.com" style="color:005740; font-weight: bold">www.sdl.com</a></font> <BR> <BR> <font face="arial" size="1" color="#736F6E"> <b>SDL PLC confidential, all rights reserved.</b> If you are not the intended recipient of this mail SDL requests and requires that you delete it without acting upon or copying any of its contents, and we further request that you advise us.<BR> SDL PLC is a public limited company registered in England and Wales. Registered number: 02675207.<BR> Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, UK. </font> ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users