So far you are following the component rules, but there is a known issue regarding early removal in major upgrades and fusion/win32-sxs/gac installations: http://support.microsoft.com/kb/905238.
You need to move the placement of the RemoveExistingProducts action to a late placement. See http://blogs.msdn.com/astebner/archive/2007/02/08/assemblies-may-be-missing-from-the-gac-or-winsxs-cache-after-an-msi-major-upgrade.aspx for a summary and a description of the fix. Note to all: this applies to anything installed to the GAC AND to anything installed into the Win32 SxS system (which is similar), such as the runtime MSMs that VC ships (ATL, MFC, etc.). -----Original Message----- From: skaa [mailto:sk...@hotmail.com] Sent: Monday, September 28, 2009 8:53 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Install DLL into GAC Hello! This is the code: <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="*" Name="expGacIDll" Language="1033" Version="1.0.0.7" Manufacturer="expGacIDll" UpgradeCode="a8bb7bba-e657-48c5-bcb5-3dc9c0cf38df"> <Package InstallerVersion="200" Compressed="yes" /> <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLLOCATION" Name="expGacIDll"> <Component Id="ProductComponent" Guid="7c737e61-a17f-4ef3-b0a1-0129943e8ce7"> <File Id="filActiveReports3.dll" Assembly=".net" KeyPath="yes" Source="ActiveReports3.dll" /> </Component> </Directory> </Directory> </Directory> <Feature Id="ProductFeature" Title="expGacIDll" Level="1"> <ComponentRef Id="ProductComponent" /> </Feature> <Upgrade Id="a8bb7bba-e657-48c5-bcb5-3dc9c0cf38df"> <UpgradeVersion Minimum="1.0.0.0" Property="PREVIOUSVERSIONSINSTALLED" IncludeMinimum="yes"/> </Upgrade> <InstallExecuteSequence> <RemoveExistingProducts After="InstallInitialize">PREVIOUSVERSIONSINSTALLED</RemoveExistingProducts> </InstallExecuteSequence> </Product> </Wix> If I run the MSI created by this code, it installs ActiveReports3.dll into GAC. If I change the version to 1.0.0.8 then it removes ActiveReports3.dll from GAC. And so on: 1.0.0.9 installs, 1.0.0.10 removes… ActiveReports3.dll is not my DLL, we bought it. What is wrong in this code? If I try to make this with the DLL that I create by Visual Studio, everything works perfectly. Thank you! ----- ! -- View this message in context: http://n2.nabble.com/Install-DLL-into-GAC-tp3730219p3730219.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users