Bugs item #1487586, was opened at 2006-05-12 20:12 Message generated for change (Settings changed) made by fregro You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=642714&aid=1487586&group_id=105970
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: extensions Group: v2.0 Status: Open Resolution: None >Priority: 8 Submitted By: Neil Sleightholm (nsleigh) Assigned to: Fredrik Grohn (fregro) Summary: Adding component to COM+ if it is in the GAC Initial Comment: As requested by Fredrik Grohn I have raised a bug report for this "I think this is a bug that somehow relates to the .NET 2.0 framework". I still have a problem adding a component to COM+ if it is in the GAC. I can install the same component if I don't put it in the GAC and if I remove the COM+ code the component can be installed into the GAC. The errors in the log are: MSI (s) (C4:F4) [22:09:48:936]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI130.tmp, Entrypoint: ComPlusInstallExecuteCommit ComPlusInstallExecuteCommit: Error 0x80131047: Failed to get assembly info ComPlusInstallExecuteCommit: Error 0x80131047: Failed to get path for assembly from GAC ComPlusInstallExecuteCommit: Error 0x80131047: Failed to register assembly, key: MyComPlusAssembly ComPlusInstallExecuteCommit: Error 0x80131047: Failed to register assemblies Here is my code fragment: <Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi" xmlns:pca="http://schemas.microsoft.com/wix/2005/02/pu bca"> <Fragment Id="Files"> <DirectoryRef Id="INSTALLDIR"> <Component Id="SupportDotNet_dll" DiskId="1" Guid="7F82F78D-39D4-4651-AD36-F0642A6552DA"> <File Id="SupportDotNet_dll" Name="SUPP.DLL" LongName="SupportDotNet.dll" Source="Files\SupportDotNet.dll" KeyPath="yes" Assembly=".net" /> <pca:ComPlusApplication Id="SupportDotNet" Name="My COM+ Application"> <pca:ComPlusAssembly Id="MyComPlusAssembly" TlbPath="[#SupportDotNet_tlb]" Type=".net" DllPathFromGAC="yes" RegisterInCommit="yes" > <pca:ComPlusComponent Id="CheckInterface" CLSID="21E72DE4-241E-4472-8C71-61A22BAF9914"/> </pca:ComPlusAssembly> </pca:ComPlusApplication> </Component> <Component Id="SupportDotNet_tlb" DiskId="1" Guid="FD850F44-6EE3-4af0-8ED6-E29B0F3A1E64"> <File Id="SupportDotNet_tlb" Name="SUPP.TLB" LongName="SupportDotNet.tlb" Source="Files\SupportDotNet.tlb" KeyPath="yes" /> </Component> </DirectoryRef> </Fragment> </Wix> ---------------------------------------------------------------------- Comment By: Alexander Biryukov (alexbirk) Date: 2006-08-16 00:04 Message: Logged In: YES user_id=955147 Supplement to previous message: Patch tested on wix version 2.0.4409.0 ---------------------------------------------------------------------- Comment By: Alexander Biryukov (alexbirk) Date: 2006-08-15 23:39 Message: Logged In: YES user_id=955147 I found solution of this bug. See comments in code. This tested on WinXP SP2 with installed .Net 1.1 and 2.0 simultaneously. File src\ca\pubca\pcaexec\cpiasmexec.cpp ... Line 843: hr = pAssemblyCache->QueryAssemblyInfo(0, pwzAssemblyName, &assemblyInfo); // ------------------ [Begin of new code] ------------------ if(hr == 0x80131047) // 0x80131047 - The given assembly name or code-base is invalid { // In .Net 1.x and .Net 2.0 AssemblyName will be different // .Net 1.x format: "MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=A6C259C05F51723A, ProcessorArchitecture=MSIL, Language=Neutral" // .Net 2.0 format: "MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=A6C259C05F51723A" // // Trying to get assembly info by reformatted assembly name string in .Net 2.0 format. // Cuting off a tail of assambly name string (from "ProcessorArchitecture" to end) LPWSTR pwzSubStr = wcsstr(pwzAssemblyName, L", ProcessorArchitecture"); size_t foundPos = pwzSubStr ? pwzSubStr- pwzAssemblyName : -1; if(foundPos > 0) { LPWSTR pwzAssemblyName2 = new WCHAR[foundPos+1]; StringCchCopyW(pwzAssemblyName2, foundPos+1, pwzAssemblyName); WcaLog(LOGMSG_STANDARD, "Alternative assembly name: %S", pwzAssemblyName2); // Trying to get assembly info in alternative format hr = pAssemblyCache->QueryAssemblyInfo(0, pwzAssemblyName2, &assemblyInfo); delete [] pwzAssemblyName2; } } // ------------------ [End of new code] ------------------ Line 844: if (HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) == hr) ... ---------------------------------------------------------------------- Comment By: Derek (derekc) Date: 2006-05-12 23:46 Message: Logged In: YES user_id=518766 Not Scott's bug. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=642714&aid=1487586&group_id=105970 ------------------------------------------------------------------------- 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
