Wow, great findings. It is always good to know, why something strange happened.

 

 

Von: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com] 
Gesendet: Mittwoch, 10. Juli 2013 18:39
An: Windows Installer XML toolset developer mailing list
Betreff: Re: [WiX-devs] SFBUG: 3341/3340

 

Argh!  (Delete long running ramblings of the 400 things I tried…)  
http://msdn.microsoft.com/en-us/library/windows/desktop/aa372919(v=vs.85).aspx

 

The certificates are “stored” in the temporary _Streams table, which has a 
definition for Name as a max length of 62 characters.  When MsiDatabaseImport 
is importing the certificates, it uses the notation of TableName.Identifier for 
the stream. So, the max length for an identifier on the MsiDigitalCertificate 
table is 40, not 72. (Sure would be nice if we had a meaningful error message 
for this.  I wonder why we don’t set the length of the column to the right 
value.)

 

 

From: Rob Mensching [mailto:r...@robmensching.com] 
Sent: Wednesday, July 10, 2013 9:38 AM
To: Windows Installer XML toolset developer mailing list
Subject: Re: [WiX-devs] SFBUG: 3341/3340

 

Re: ::MsiDatabaseImport()

 

It is a bit of a pain to debug when there are failures however:

 

1. MsiDatabaseImport is a couple orders of magnitude faster to create the MSI 
over using the SQL queries.

 

2. MsiDatabaseImport creates the smallest MSI files. The SQL insert/update 
queries can add "hot air" to an MSI so we want to minimize their use to what is 
absolutely necessary.

 

On Tue, Jul 9, 2013 at 10:57 AM, Hoover, Jacob <jacob.hoo...@greenheck.com> 
wrote:

When looking at SFBUG 3340 and 3341,  I attempted to prefix the identifier.  
Any time I use anything other than the hash it fails to import.  I’ve tried 
multiple variations (_, cer, Z, etc) of a prefix.  Each time I have verified 
that the certificate name in the IDT matches that of the file on disk in the 
MsiDigitalCertificate sub folder.  I’ve tried it with only changing the 
identifier and with changing both the identifier and the file name.

 

By chance is there something mis-documented on either the table definition or 
the MsiDatabaseImport function? (Is there a reason we are using this instead of 
using the DB functions directly?)

 

It may be worth mentioning that I can’t even adjust this value with Orca. It 
fails on commit with “The data was rejected by the database. It may be out of 
the valid range or formatted incorrectly”.  I can modify the identifier in the 
MsiDigitalSignature table, and I can modify another record in the 
MsiDigitalCertificate table. (I have a local fix that leaves the named key from 
the MsiPatchCertificate table in place.)  The only other unique thing I can 
think of is both certs are identical.

 

Thanks,

Jacob 

 


------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831 
<http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk> 
&iu=/4140/ostg.clktrk
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-devs

 

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-devs

Reply via email to