Изменен или поврежден MSI
Я новичок в wix, поэтому, пожалуйста, потерпите меня.
У меня есть рабочий установщик для нашего приложения Windows WPF. Сейчас я пытаюсь выполнить предварительную установку приложения до его установки. Я могу собрать установщик, упакованный с обязательным условием для моего приложения, но когда я запускаю его и нажимаю "да", чтобы, если я хочу запустить установку для моей обязательной программы, он выдает ошибку.
Программа установки обнаружила, что файл "C:\Users\DevMachine\AppData\Local\Temp\VSDC06D.tmp\SlimDX\SlimDX Runtime .NET 4.0 x64 (январь 2012 г.).msi" изменился с момента его первоначальной публикации или может быть коррумпированы.
Я знаю, что SlimDx MSI не поврежден, так как я могу запустить его из моего каталога установщика просто отлично. Так что, возможно, он думает, что это изменилось.
Я использую подпись кода с ключом.snk во всех проектах в моем приложении. Может ли это быть причиной? Я в недоумении, как это исправить, если это проблема.
Я копирую распространяемый пакет slimDx в папку Setup в части msbuild.
<ItemGroup>
<BootstrapperFile Include=".NETFramework,Version=v4.0">
<ProductName>Microsoft .NET Framework 4.0</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="Microsoft.Windows.Installer.4.5">
<ProductName>Windows Installer 4.5</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="ESRIArcEngine$(EsriVersionLinked)Runtime">
<ProductName>ESRIArcEngine$(EsriVersionLinked)Runtime</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="SlimDX.January.2012">
<ProductName>SlimDX (January 2012)</ProductName>
</BootstrapperFile>
</ItemGroup>
Таким образом, в конце я пытаюсь сделать это, когда я запускаю мои приложения Setup.exe, он сначала запустит установщик для распространения SlimDx, а затем запустит установку для моего приложения.
Пожалуйста, помогите, спасибо.
1 ответ
Скачать из интернета флаг?: Просто чтобы убедиться, что при проверке свойств файла SlimDX Runtime .NET 4.0 x64 (January 2012).msi
установлен ли флаг " скачано из интернета "?
Я бы так не думал, но нужно проверить. Я думаю, что тестовый запуск MSI мог бы удалить флаг, но возможно, что вы сделали копию загруженного файла, не удаляя флаг, и именно эта копия включена в пакет (не MSI, который вы запускали):
- При загрузке из Интернета файл будет иметь альтернативный поток данных
Zone.Identifier
со значением3
указывая, что файл был загружен из Интернета. Это вызывает предупреждения безопасности. - В вашем случае просто удалите флаг вручную, используя указанную кнопку в диалоговом окне свойств файла, а затем перекомпилируйте настройки и средство запуска.
Подробнее об этом альтернативном потоке можно прочитать здесь. Как пройти защиту SmartScreen Защитника Windows?
Подписание: как вы на самом деле подписываете Setup.exe
и различные components / prerequisities
? Некоторая информация о подписи: snk против сертификата подписи кода (рекомендуется).
И есть проблема, когда Setup.exe ожидает хэширования SHA1, а установка подписывается хэшированием SHA2: ошибка "Файл... изменен... или может быть поврежден" при публикации приложения ClickOnce в Visual Studio 2010 и.NET Framework 4.5 с пользовательскими предпосылками
Извлечь: " ... эта проблема возникает из-за того, что процесс сборки генерирует дайджест файла предварительных требований с помощью алгоритма хэширования SHA2, когда он упаковывает файл предварительных требований. Однако файл Setup.exe пытается прочитать дайджест с использованием алгоритма SHA1. Поэтому происходит несоответствие между ожидаемыми дайджестами и фактическими дайджестами, и Setup.exe определяет, что MSI-файл отсутствует или поврежден. "
Программное обеспечение для обеспечения безопасности: И хотя я считаю, что в данном случае это не имеет значения, возможно, убедитесь, что какое-либо программное обеспечение для защиты не блокирует вашу установку (по какой-либо причине). Попробуйте временно отключить его или протестировать на чистом виртуале без установки чего-либо еще?
Некоторые ссылки: