I want to clarify what I was trying to say: after running the Major Upgrade and looking at the verbose log, under the RemoveExistingProducts action, I found a line for one of the old components that contains one of the v.3 Assemblies - it looks like Windows Installer is planning to remove it: MSI (s) (38:38) [17:05:07:710]: Component: component80; Installed: Local; Request: Absent; Action: FileAbsent; Client State: Local
Thanks, Greg -----Original Message----- From: Gregory Swanson Sent: Tuesday, October 18, 2011 6:19 PM To: General discussion for Windows Installer XML toolset. Subject: RE: [WiX-users] Replacing .Net v.3Assemblieswith.Net v.4Assembliesduring Major Upgrade We do have other applications that share some of these components, and that list is growing. But looking in the SharedDLLs key in the registry, I see that none of the .Net dlls are listed so I guess the SharedDLLRefCount attribute is not needed with .Net dlls. After running the Major Upgrade, the old package is removed from ARP. But the old .Net v.3 Assemblies are left behind in the v.2 GAC, while the new .Net v.4 Assemblies are in the v.4 GAC. Running an uninstall at this point removes everything. Under the RemoveExistingProducts action in the verbose log, I found a line for one of the old components that contains one of the v.3 Assemblies - it looks like Windows Installer is planning to remove it: MSI (s) (38:38) [17:05:07:710]: Component: component80; Installed: Local; Request: Absent; Action: FileAbsent; Client State: Local I don't expect that a single line from a 23 MB log file is much use though. Thanks, Greg -----Original Message----- From: Chad Petersen [mailto:chad.peter...@harlandfs.com] Sent: Tuesday, October 18, 2011 11:42 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Replacing .Net v.3Assemblieswith.Net v.4Assembliesduring Major Upgrade It might not be an issue, but just reading your code I'd tend to avoid the SharedDllRefCount. But, reading that also makes me wonder if there was a particular reason for using that? Do other packages you know of also deliver the same DLL? I'm not sure how to generate an uninstall log when the Major Upgrade is the one doing the uninstall of the prior package. Maybe the registry keys for voicewarmup? Start Registry Editor (Regedt32.exe), and then create the following path and keys in the registry: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer Reg_SZ: Logging Value: voicewarmup The verbose log file will probably be the only way to see what is going on behind the scenes. You are sure that the Major Upgrade is removing the other package? Control Panel only shows the newest one when you are done installing it? -----Original Message----- From: Gregory Swanson [mailto:gswan...@athoc.com] Sent: Tuesday, October 18, 2011 11:28 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Replacing .Net v.3 Assemblieswith.Net v.4Assembliesduring Major Upgrade They're installed using the Wix File element for .Net Assemblies, like this: <Component Id='component132' Guid='6B1A694F-5FAF-4CB8-9644-8F679DB58238' DiskId='1' SharedDllRefCount='yes' Location='local'> <File Id='NETf57' Assembly='.net' KeyPath='yes' Name='example.dll' Checksum='yes' Vital='yes' AssemblyManifest='NETf57' Source='IWS\ServerObjects\DOTNET\example.dll' /> </Component> -----Original Message----- From: John Cooper [mailto:jocoo...@jackhenry.com] Sent: Tuesday, October 18, 2011 11:16 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Replacing .Net v.3 Assemblies with.Net v.4Assembliesduring Major Upgrade How are the files being GAC'ed in the old installer? Custom action or using the File element attributes? -- John Merryweather Cooper Jack Henry & Associates, Inc. (Premier Tech, Inc.) Build & Install Engineer - jXchange Office: 913-341-3434 x791011 jocoo...@jackhenry.com -----Original Message----- From: Chad Petersen [mailto:chad.peter...@harlandfs.com] Sent: Tuesday, October 18, 2011 12:54 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Replacing .Net v.3 Assemblies with .Net v.4Assembliesduring Major Upgrade That's very odd. The old MSI that installed those v.3 assemblies is the one that should be removing them, not the newer MSI. If you don't consider the upgrade, but just uninstall that older MSI through Control Panel does it not remove the GAC'ed files? The Major Upgrade simply uninstalls that previous package so no real extra mechanism is usually required. Sounds like an issue of some sort with that older MSI. You've probably done the best given the situation, but the real question is what caused the situation in the first place? We use lots of GAC'ed files and have not run into a given installer not uninstalling the GAC'ed files it is responsible for. -----Original Message----- From: Gregory Swanson [mailto:gswan...@athoc.com] Sent: Tuesday, October 18, 2011 10:44 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Replacing .Net v.3 Assemblies with .Net v.4Assembliesduring Major Upgrade Follow up - I implemented a custom action that uses gacUtil.exe to uninstall the old assemblies and scheduled it just after CostFinalize in the InstallExecuteSequence. -----Original Message----- From: Gregory Swanson [mailto:gswan...@athoc.com] Sent: Thursday, October 13, 2011 3:50 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] Replacing .Net v.3 Assemblies with .Net v.4 Assembliesduring Major Upgrade Hello: I have an MSI developed with WIX, which packages (among other things) a few .Net DLLs. Recently, these .Net v.3 DLLs have been updated to .Net v.4. I noticed that after running an upgrade, the .Net v.3 Assemblies remain in the .Net 2 GAC (I noticed this after upgrades on Windows Server 2003 R2 and Windows Server 2008 R2). What I don't understand is: since I am installing .Net v.4 Assemblies, should the .Net 3 Assemblies be removed by the MSI or not? The .Net v.4 Assemblies are installed in the .Net 4 GAC and the application seems to work fine, but I would like to remove the old v.3 Assemblies during upgrade. While investigating how to do this, I found a reference to Bob Arnson's blog ( http://www.joyofsetup.com/2008/12/30/paying-for-upgrades/ ) and followed his advice by setting RemoveExistingProducts to execute Before InstallInitialize. It was set to After InstallFinalize previously. Checking the verbose log, I do see that RemoveExistingProducts now executes just before InstallInitialize, but the v.3 Assemblies were not removed. The DLLs are authored one per component. So I thought that maybe the scheduling of RemoveExistingProducts is not the reason, maybe something else like file versioning (we have a build engineer who manages that, and since the builds are automated I don't usually notice a problem right away). I checked the file versions, and one .Net v.3 DLL has a File Version of 2.3.0.0, while the .Net v.4 copy has a File Version of 2.10.0.0. The Assembly version is the same for both DLLs. I think this is the correct versioning to prevent a side-by-side deployment when the DLLs are created with the same, or even with different versions of .Net. I'm pretty sure I could remove the .Net v.3 Assemblies with a simple Custom Action, but I don't want to do that if there is a better approach. Thanks in advance for any help. Greg ------------------------------------------------------------------------ ------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users NOTICE: This electronic mail message and any files transmitted with it are intended exclusively for the individual or entity to which it is addressed. The message, together with any attachment, may contain confidential and/or privileged information. Any unauthorized review, use, printing, saving, copying, disclosure or distribution is strictly prohibited. If you have received this message in error, please immediately advise the sender by reply email and delete all copies. ------------------------------------------------------------------------ ------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2d-oct _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users