Hi all, I am having trouble installing a native assembly in WinSxS. Here's what I did:
I created a simple native code dll (just let VC2010 create one for me, really) I have self-signed a certificate, pktextract gives me this on it: Microsoft (R) Side-By-Side Public Key Token Extractor 1.1.3.0 Copyright (C) Microsoft Corporation 2000-2002. All Rights Reserved Certificate: "SxS Test Cert" - 2048 bits long publicKeyToken="750e4397f64dcd89" I used signtool to sign the dll. I did not timestamped it, and that shows when I look at dll properties. I created a manifest for my assembly using mt.exe: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="TestDLL" processorArchitecture="x86" publicKeyToken="750e4397f64dcd89" type="win32" version="1.0.0.1"></ assemblyIdentity> <file name="TestDll.dll" hashalg="SHA1" hash=" 7c8ed87e6403c4fa5eec429b4be4b9bd417b2ac3"> <asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig= "http://www.w3.org/2000/09/xmldsig#"> <dsig:Transforms><dsig:Transform Algorithm=" urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></ dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1 "></dsig:DigestMethod> <dsig:DigestValue>xrzo5LYc4y1QcGVGVbLPpWRKQLs=</dsig:DigestValue> </asmv2:hash> </file> </assembly> Manifest creation gave me this *.cdf: [CatalogHeader] Name=TestDLL.dll.cat ResultDir=.............\Debug [CatalogFiles] <HASH>TestDLL.dll.manifest=TestDLL.dll.manifest TestDLL.dll.manifest=TestDLL.dll.manifest Using makecat, I created a cat file from the *.cdf above, and I signed it in the same way I signed the dll itself. I have the following wix: <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="4C725A4B-7E5A-4502-B2E9-F72B25CC8D51" Name="TestProduct" Language="1033" Version="0.0.0.1" Manufacturer="WixEdit" UpgradeCode=" A214B501-6CAB-4736-B43F-C46256D69440"> <Package Description="Test file in a Product" Comments="Simple test" InstallerVersion="200" Compressed="yes" /> <Media Id="1" Cabinet="simple.cab" EmbedCab="yes" /> <Directory Id="TARGETDIR" Name="SourceDir"> <Component Id="TestDLL" Guid="6DC0F277-B9BF-4115-8B3A-CEDB2323FD5D"> <File Id="TestDLL.dll" Name="TestDLL.dll" Source=" ..\Debug\TestDLL.dll" AssemblyManifest="TestDLL.dll.Manifest" KeyPath="yes " Vital="yes" Assembly="win32" /> <File Id="TestDLL.dll.Manifest" Name="TestDLL.dll.Manifest" Source ="..\Debug\TestDLL.dll.manifest" Vital="yes" /> <File Id="TestDLL.dll.cat" Name="TestDLL.dll.cat" Source=" ..\Debug\TestDLL.dll.cat" Vital="yes" /> </Component> </Directory> <Feature Id="DefaultFeature" Title="Main Feature" Level="1"> <ComponentRef Id="TestDLL" /> </Feature> <UI /> <UIRef Id="WixUI_Minimal" /> </Product> </Wix> I can build an *.msi from there, but when I try to install, I get an error (captured by running the msi install from WixEdit): MSI (s) (C4:60) [13:31:42:678]: Executing op: SourceListRegisterLastUsed(SourceProduct=4C725A4B-7E5A-4502-B2E9-F72B25CC8D51,LastUsedSource=........................\Test\WiX\) MSI (s) (C4:60) [13:31:42:678]: Entering CMsiConfigurationManager::SetLastUsedSource. MSI (s) (C4:60) [13:31:42:680]: Specifed source is already in a list. MSI (s) (C4:60) [13:31:42:681]: User policy value 'SearchOrder' is 'nmu' MSI (s) (C4:60) [13:31:42:681]: Adding new sources is allowed. MSI (s) (C4:60) [13:31:42:682]: Set LastUsedSource to: ...................\Test\WiX\. MSI (s) (C4:60) [13:31:42:684]: Set LastUsedType to: n. MSI (s) (C4:60) [13:31:42:685]: Set LastUsedIndex to: 1. MSI (s) (C4:60) [13:31:42:686]: Executing op: End(Checksum=0,ProgressTotalHDWord=0,ProgressTotalLDWord=296896) MSI (s) (C4:60) [13:31:42:743]: Assembly Error:An HRESULT could not be translated to a corresponding Win32 error code. MSI (s) (C4:60) [13:31:42:745]: Note: 1: 1935 2: 6DC0F277-B9BF-4115-8B3A-CEDB2323FD5D 3: 0x800736FD 4: IAssemblyCacheItem 5: Commit 6: TestDLL,version="1.0.0.1",type="win32",processorArchitecture="x86",publicKeyToken="750e4397f64dcd89" MSI (s) (C4:60) [13:31:42:746]: Assembly Error (sxs): Please look into Component Based Servicing Log located at -253369224ndir\logs\cbs\cbs.log to get more diagnostic information. MSI (s) (C4:60) [13:31:42:747]: Note: 1: 2205 2: 3: Error MSI (s) (C4:60) [13:31:42:749]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1935 When I look at CBS log, I see: 2012-10-15 13:41:34, Info CSI 0000003b Performing 3 operations; 3 are not lock/unlock and follow: Stage (1): flags: 8 app: [TestDLL, Version = 1.0.0.1, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope neutral, PublicKeyToken = {l:8 b:750e4397f64dcd89}, Type = [l:10{5}]"win32", TypeName neutral, PublicKey neutral]) comp: TestDLL, Version = 1.0.0.1, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope neutral, PublicKeyToken = {l:8 b:750e4397f64dcd89}, Type = [l:10{5}]"win32", TypeName neutral, PublicKey neutral man: @0x1b0178 StageFile (2): flags: 8 app: [TestDLL, Version = 1.0.0.1, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope neutral, PublicKeyToken = {l:8 b:750e4397f64dcd89}, Type = [l:10{5}]"win32", TypeName neutral, PublicKey neutral]) comp: TestDLL, Version = 1.0.0.1, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope neutral, PublicKeyToken = {l:8 b:750e4397f64dcd89}, Type = [l:10{5}]"win32", TypeName neutral, PublicKey neutral file: [ml:24{12},l:22{11}]"TestDll.dll" srcfile: @0x1ae9d8 AddCat (14): flags: 0 catfile: @0x1b0208 2012-10-15 13:41:34, Info CSI 0000003c Creating NT transaction (seq 10), objectname [6]"(null)" 2012-10-15 13:41:34, Info CSI 0000003d Created NT transaction (seq 10) result 0x00000000, handle @0x288 2012-10-15 13:41:34, Info CSI 0000003e@2012/10/15:11:41:34.817 CSI perf trace: CSIPERF:TXCOMMIT;12619 2012-10-15 13:41:34, Info SXS Submitting install transaction 2012-10-15 13:41:34, Info CSI 0000003f Performing 1 operations; 1 are not lock/unlock and follow: Install (5): flags: 0 tlc: [TestDLL, Version = 1.0.0.1, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope neutral, PublicKeyToken = {l:8 b:750e4397f64dcd89}, Type = [l:10{5}]"win32", TypeName neutral, PublicKey neutral]) ref: ( flgs: 00000000 guid: {27dec61e-b43c-4ac8-88db-e209a8242d90} name: [l:0]"" ncdata: [l:62{31}]"C:\Windows\system32\msiexec.exe") thumbprint: [l:128{64}]"661a7f2a487ba43390b9b801a6a422c599d0f707e65730448d37efde05db93e8" 2012-10-15 13:41:34, Info CSI 00000040 Component change list: 2012-10-15 13:41:34, Info CSI 00000041 Couldn't find the hash of component: TestDLL, Version = 1.0.0.1, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope neutral, PublicKeyToken = {l:8 b:750e4397f64dcd89}, Type = [l:10{5}]"win32", TypeName neutral, PublicKey neutral in the catalog [l:192{96}]"\SystemRoot\WinSxS\Catalogs\661a7f2a487ba43390b9b801a6a422c599d0f707e65730448d37efde05db93e8.cat". 2012-10-15 13:41:34, Error CSI 00000042@2012/10/15:11:41:34.824 (F) d:\w7rtm\base\wcp\componentstore\csd_winners.cpp(1302): Error 80092004 [Warning,Facility=FACILITY_NTSSPI,Code=8196 (0x2004)] originated in function CCSDirectTransaction::AddImplicationsToCatalogsAndVerifyComponentHashes expression: (null) [gle=0x80004005] 2012-10-15 13:41:34, Error CSI 00000043 (F) 80092004 [Warning,Facility=FACILITY_NTSSPI,Code=8196 (0x2004)] #6284# from CCSDirectTransaction::PrepareForCommit(...)[gle=0x90092004] 2012-10-15 13:41:34, Error CSI 00000044 (F) 80092004 [Warning,Facility=FACILITY_NTSSPI,Code=8196 (0x2004)] #6283# from CCSDirectTransaction::ExamineTransaction(...)[gle=0x90092004] 2012-10-15 13:41:34, Error CSI 00000045 (F) 80092004 [Warning,Facility=FACILITY_NTSSPI,Code=8196 (0x2004)] #6282# from CCSDirectTransaction_IRtlTransaction::ExamineTransaction(...)[gle=0x90092004] 2012-10-15 13:41:34, Error CSI 00000046 (F) CRYPT_E_NOT_FOUND #6158# from Windows::COM::CPendingTransaction::IStorePendingTransaction_Analyze(...)[gle=0x80092004] 2012-10-15 13:41:34, Error SXS Analyze Transaction failed with 0x80092004 Finally, event log gives me following: Product: TestProduct -- Error 1935. An error occurred during the installation of assembly 'TestDLL,version="1.0.0.1",type="win32",processorArchitecture="x86",publicKeyToken="750e4397f64dcd89"'. Please refer to Help and Support for more information. HRESULT: 0x800736FD. assembly interface: IAssemblyCacheItem, function: Commit, component: {6DC0F277-B9BF-4115-8B3A-CEDB2323FD5D} I guess that the parts in bold are the key to my trouble, but no idea what to do about it. Any idea? TIA, Goran. This e-mail message, including any attachments transmitted with it, is CONFIDENTIAL and may contain legally privileged information. This message is intended solely for the use of the individual or entity to whom it is addressed. If you have received this message in error, please notify us immediately and delete it from your system. Please visit our website to read the full disclaimer: http://www.euroclear.com/site/public/disclaimer ------------------------------------------------------------------------------ Don't let slow site performance ruin your business. Deploy New Relic APM Deploy New Relic app performance management and know exactly what is happening inside your Ruby, Python, PHP, Java, and .NET app Try New Relic at no cost today and get our sweet Data Nerd shirt too! http://p.sf.net/sfu/newrelic-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users