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

Reply via email to