2017-07-24 95 views
0

道歉,但我的谷歌福已經失敗了我,所有我能找到的是ASP.Net RC1的安裝程序有這個問題,這與模糊相關:Burn installer facing error .Net 45 0x80091007-The hash value is not correctWix自定義捆綁錯誤0x80091007:哈希不匹配的路徑:

當他們解開我的包工作正常,除了一個exepackage的一些依賴其拋出一個錯誤:

[16EC:1320][2017-07-24T11:33:25]e000: Error 0x80091007: Hash mismatch for path: C:\ProgramData\Package Cache\65D4FC25E4F02CCC325917AE7EA5987BA52497DA\MOMCertImport.exe, expected: 06BD98583C73B9D97A54472EDF0A00D590024A67, actual: 87FD653C06C4D638C83182FD43AD37E83C757492 
[16EC:1320][2017-07-24T11:33:25]e000: Error 0x80091007: Failed to verify hash of payload: pay2F6419EC3C4EF736B4C9257552A6C584 

從我在谷歌找到我的理解是,當包是建立在生成散列值。然後,在執行捆綁時,將生成一個新的哈希值,並將兩者進行比較以確保該捆綁未被篡改。這一切都非常有意義,然而,一旦捆綁包被構建,三個未通過捆綁測試的文件就不會被修改。該exepackage和有效載荷文件被聲明如下:

<ExePackage Id="PowerONPulseConfigProd" 
       Cache="yes" 
       Compressed="yes" 
       InstallCommand='-ai -o certificate -c "[CompanyName]"' 
       InstallCondition='ProductChoice = pulse AND DeployEnv = prod' 
       UninstallCommand='-ai -o unistall -u [Username] -p [Password]' 
       After='PowerONPulse' 
       SourceFile='Resources\Prod.Pulse\SetupAgentB.exe'> 
    <Payload Compressed='yes' SourceFile='Resources\Prod.Pulse\SCA\SCOM2012\x64\MOMCertImport.exe'/> 

我最好的猜測是,有或者是一些錯誤的文件(一個.exe和兩個DLL)作爲有效載荷文件的其餘部分正常工作或一些錯誤同程我籤我的包:

<Target Name="SignBundleEngine"> 
    <Exec Command="&quot;C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x86\signtool.exe&quot; sign /f &quot;PowerONCodeSigning.pfx&quot; /p /t http://timestamp.digicert.com /v /d &quot;%(SignBundleEngine.Filename)&quot; &quot;@(SignBundleEngine)&quot;" /> 
</Target> 
<Target Name="SignBundle"> 
    <Exec Command="&quot;C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x86\signtool.exe&quot; sign /f &quot;PowerONCodeSigning.pfx&quot; /p /t http://timestamp.digicert.com /v /d &quot;%(SignBundle.Filename)&quot; &quot;@(SignBundle)&quot;" /> 
</Target> 
<Target Name="SignMsi"> 
    <Exec Command="&quot;C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x86\signtool.exe&quot; sign /f &quot;PowerONCodeSigning.pfx&quot; /p /t http://timestamp.digicert.com /v /d &quot;%(SignMsi.Filename)&quot; &quot;@(SignMsi)&quot;" /> 
</Target> 
<Target Name="SignCabs"> 
    <Exec Command="&quot;C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x86\signtool.exe&quot; sign /f &quot;PowerONCodeSigning.pfx&quot; /p /t http://timestamp.digicert.com /v /d &quot;%(SignCabs.Filename)&quot; &quot;@(SignCabs)&quot;" /> 
</Target> 

在這一點上,我很茫然,什麼可能會造成這個,真的希望任何幫助。

回答

0

如果其他人有類似的問題,這是由於有兩個相同的名稱(但在不同的源文件夾中)的相關性,x86和x64解包到相同的地方,並燒燬得到的GUID錯誤的方式。修復是使用Name值爲每個文件夾指定一個文件夾結構。現在

有效載荷文件聲明如下:

<Payload Compressed='yes' SourceFile='Resources\Prod.Pulse\SCA\SCOM2012\x64\MOMCertImport.exe' Name='SCA\SCOM2012\x64\MOMCertImport.exe'/> 
    <Payload Compressed='yes' SourceFile='Resources\Prod.Pulse\SCA\SCOM2012\x86\MOMCertImport.exe' Name='SCA\SCOM2012\x86\MOMCertImport.exe'/>