Пакет WiX получает сообщение «Не удалось проверить хэш полезной нагрузки» при попытке установить основной пакет хостинга .net из Интернета. - PullRequest
0 голосов
/ 28 мая 2019

У меня есть пакет WiX для записи / загрузки с:

        <?define DotNetVersion = "2.1.11"?>
        <!-- The Min and Next .Net version that our installed version must be between -->
        <Variable Name='MinDotNetVersion' Type='string' Value='2.1.0' bal:Overridable='no'/>
        <Variable Name='NextDotNetVersion' Type='string' Value='2.2.0' bal:Overridable='no'/>

        <?define HostingBundleUrl = "https://www.microsoft.com/net/download/thank-you/dotnet-runtime-$(var.DotNetVersion)-windows-hosting-bundle-installer" ?>
        <util:RegistrySearch Id="DotNetHostingBundle86" 
                             Root="HKLM" 
                             Key="SOFTWARE\dotnet\Setup\InstalledVersions\$(var.Platform)\sharedhost" 
                             Value="Version"
                             Variable="DotNetHostingBundleVersion" />
        <!-- If running installer in a 32-bit process will change above key path to wow6432 etc, then won't find it. So, if didn't find it and version is x64, get the variable
             this way: -->
        <util:RegistrySearch Id="DotNetHostingBundle64" 
                             After="DotNetHostingBundle86"
                             Condition="NOT DotNetHostingBundleVersion AND VersionNT64"
                             Root="HKLM" 
                             Key="SOFTWARE\dotnet\Setup\InstalledVersions\$(var.Platform)\sharedhost" 
                             Value="Version"
                             Variable="DotNetHostingBundleVersion"
                             Win64="yes"/>

        <Chain>
            <ExePackage Id="DotNetCoreHostingBundle" 
                        Vital="yes" 
                        Name=".Net Hosting Bundle Setup" 
                        DownloadUrl="$(var.HostingBundleUrl)" 
                        Compressed="no" 
                        SourceFile=".\ExtResourcesCopy\dotnet-hosting-$(var.DotNetVersion)-win.exe" 
                        InstallCondition="NOT DotNetHostingBundleVersion OR (DotNetHostingBundleVersion &lt; MinDotNetVersion OR DotNetHostingBundleVersion &gt;= NextDotNetVersion)"
                        Description="Installing .Net Hosting Bundle $(var.DotNetVersion). This includes the 32 bit and 64 bit runtimes, the Asp.net runtime packages (Microsoft.AspNetCore.App and .All), and the IIS Hosting Components."
                         />
            ...

Я загрузил файл dotnet-hosting-2.1.11-win.exe в папку ExtResourcesCopy, и, поскольку я установил для этого SourceFile, он получает свои собственные данные полезной нагрузки.

Затем я создаю свой .exe и запускаю его на другом компьютере и получаю следующую ошибку:

Acquiring package: DotNetCoreHostingBundle, payload: DotNetCoreHostingBundle, download from: https://www.microsoft.com/net/download/thank-you/dotnet-runtime-2.1.11-windows-hosting-bundle-installer
Error 0x80091007: Hash mismatch for path: C:\ProgramData\Package Cache\.unverified\DotNetCoreHostingBundle, expected: 1ED626AD403D6E5D99AB69DB7C281FB8E8A8D0A2, actual: F21BF2F13F89D1C9DFD2844D57728102D5714EAA
Error 0x80091007: Failed to verify hash of payload: DotNetCoreHostingBundle
Failed to verify payload: DotNetCoreHostingBundle at path: C:\ProgramData\Package Cache\.unverified\DotNetCoreHostingBundle, error: 0x80091007. Deleting file.

Затем я проверил хэш SHA1 на целевом компьютере, загрузив файл dotnet-hosting-2.1.11-win.exe вручную из Microsoft, используя точный URL-адрес из файла журнала, и запустив:

certutil -hashfile dotnet-hosting-2.1.11-win.exe

Это дало мне ожидаемый хеш: 1ed626ad403d6e5d99ab69db7c281fb8e8a8d0a2

Так откуда же взялся этот "фактический" хеш F21BF2F13F89D1C9DFD2844D57728102D5714EAA? Есть ли способ приостановить установку, чтобы я мог проверить файл в папке .unverified? И / или что я могу с этим сделать?

Ответы [ 2 ]

1 голос
/ 28 мая 2019

URL, который вы используете, является HTML-страницей, которая использует JavaScript для загрузки пакета.Burn просто видит HTML.

0 голосов
/ 28 мая 2019

Вы должны быть в состоянии использовать dark.exe для декомпиляции вашего исполняемого файла пакета и просмотра хэшей для всех полезных нагрузок.

Примечание. Эти хэши присутствуют в целях безопасности. Они предотвращают вмешательство злоумышленников в инсталляционный контент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...