Hmm, unfortunately that is the best version. It seems to be a known limitation of loading one version of the runtime to access another version's assembly files that these types of issues can arise.
Derek -----Original Message----- From: Erlichmen, Shay [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 28, 2006 12:59 AM To: [EMAIL PROTECTED]; [email protected] Subject: RE: [WiX-devs] Windows Installer/.NET 2.0/Broken Features V 3.01.4000.1823 -----Original Message----- From: Derek Cicerone [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 28, 2006 12:08 AM To: Erlichmen, Shay; [email protected] Subject: RE: [WiX-devs] Windows Installer/.NET 2.0/Broken Features What version of MSI are you using? Is it 3.0? Derek -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Erlichmen, Shay Sent: Tuesday, June 27, 2006 11:11 AM To: [email protected] Subject: Re: [WiX-devs] Windows Installer/.NET 2.0/Broken Features Here goes: 1. Write a ServicedComponent using .NET 2.0. 2. Write a Wix script to using the file to the GAC. 3. Access the component using a .NET 1.1 application. Type objectType = Type.GetTypeFromProgID("ProgID"); object obj = Activator.CreateInstance(objectType); 4. Your MSI that installs the file should kick in in repair mode because it thinks that the Component (MSI component) that installed the files is broken. I used some tools and found up that my .NET is using Fusion 1.1 API to figure out if the MSI is installed in the GAC. Those API were triggered by MSI API. I think that the reason for it is that the MSI API is not using the LoadLibraryShim which loads the latest APIs of the fusion but I'm shooting blindly without the sources. BTW, some other tools of the trade (I'm not naming names) are using their own ways to install assemblies to the GAC. -Shay Erlichmen. -----Original Message----- From: Derek Cicerone [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 27, 2006 6:18 PM To: Erlichmen, Shay; [email protected] Subject: RE: [WiX-devs] Windows Installer/.NET 2.0/Broken Features I'm a little fuzzy on what the actual bug behavior that you're trying to get around was. Could you please give some more info? This seems a little risky at first blush because I know that properly handling upgrades, patching, uninstall, reinstall, rollback, etc... for assemblies files in the GAC can be extremely tricky to get 100% correct. In general we advise people not to duplicate functionality already found in the Installer because its nearly impossible to do as good a job as the MSI team. I'd like to hear more info on your scenarios to determine if there is a clear bug in the Installer (which should be fixed). Thanks, Derek -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Erlichmen, Shay Sent: Tuesday, June 27, 2006 1:45 AM To: [email protected] Subject: [WiX-devs] Windows Installer/.NET 2.0/Broken Features Hi, We have found a bug with the broken features detection code of windows installer, In the 1st part of the mail I will describe it in the second part I will introduce the new Wix extension that we wrote to install assemblies into the GAC. The Bug: When you use the MsiTableName and declare a .NET assembly as KeyPath the feature integrity code will be invoke each time your application will use that assembly. The problem is the It's a .NET 2.0 assembly and you application is written with .NET 1.1. In that case the Windows Installer will use Fusion (The assembly loader system) 1.1 which will return an error when trying to read something of the assembly. You will see in the event viewer a lot of "Detection of product '{Guid}' Feature "{FeatureId}" failed during request for component '{Guid}'". You can fix this by compiling you code with 2.0 or using requiredRuntime in the app.config to bind you application to 2.0. The problem is even more complex, normally applications written in 1.1 cannot access 2.0 assemblies but if you write a ServiceComponent in 2.0 and use it thru 1.1 then you will hit the bug. There is anther way of reproducing this bug that is even more complex, but eventually I think it all goes thru the same code path. I know that the Wix team is not in charge for the Windows Installer core code, and I would gladly send them this mail if I only knew where to. The Solution: We wrote a Wix extension that installs files into the GAC, I saw a lot of posts about ppl complain that they need to install files in both locations and that will require them to install the files twice and doubling their MSI file. By using this extension will disable the feature integrity check when using the assembly. Here is a xml snippet of how to use the extension, I would gladly post the code and everything to CVS if someone will ask me to. <Wix xmlns='http://schemas.microsoft.com/wix/2003/01/wi' xmlns:assm="http://schemas.microsoft.com/wix/2005/02/wixassm" > <Component Id='MyComp' Guid='{GUID}'> <File Id='DotNet.DLL' KeyPath='yes' Name='DotNet.DLL' src='.\DotNet.DLL' DiskId='1'/> <assm:Assembly RuntimeVersion='v2.0.50727' NGen='no' GAC='yes' /> </Component> </Wix> I hope someone will find it useful, Regards, -Shay Erlichmen. ________________________________________________________________________ ____ ______________ This electronic message contains information from Verint Systems, which may be privileged and confidential. The information is intended to be for the use of the individual(s)or entity named above. If you are not the intended recipient, be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. If you have received this electronic message in error, please notify us by replying to this email (1). Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ WiX-devs mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wix-devs ________________________________________________________________________ ____ ______________ This electronic message contains information from Verint Systems, which may be privileged and confidential. The information is intended to be for the use of the individual(s)or entity named above. If you are not the intended recipient, be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. If you have received this electronic message in error, please notify us by replying to this email (1). Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ WiX-devs mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wix-devs ____________________________________________________________________________ ______________ This electronic message contains information from Verint Systems, which may be privileged and confidential. The information is intended to be for the use of the individual(s)or entity named above. If you are not the intended recipient, be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. If you have received this electronic message in error, please notify us by replying to this email (1). Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ WiX-devs mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wix-devs
