Проблемы с пакетом установщика Windows - PullRequest
9 голосов
/ 11 февраля 2009

У меня есть клиент, у которого проблемы с нашим установщиком .msi для нашего приложения. WiX был использован для создания этого установщика. Приложение отлично установлено на десятках других компьютеров, но на его компьютере отображается сообщение:

Этот установочный пакет не может быть открылась. Связаться с поставщиком приложения чтобы убедиться, что это действительная Windows Пакет установщика.

Я предполагаю, что это одна из этих двух возможностей:

  1. Версия установщика Windows на компьютере клиента устарела.
  2. .msi он может быть поврежден.

Какова наиболее вероятная возможность или есть другие возможности, о которых я не знаю?

Я думаю, что воссоздал проблему пользователя. Если из командной оболочки я запускаю MyFile.msi , то он успешно загружается, и я получаю это в файле журнала:

=== Verbose logging started: 2/12/2009  10:34:38  Build type: SHIP UNICODE 4.00.6001.00  Calling process: C:\Windows\System32\msiexec.exe ===
MSI (c) (F4:04) [10:34:38:795]: Resetting cached policy values
MSI (c) (F4:04) [10:34:38:795]: Machine policy value 'Debug' is 0
MSI (c) (F4:04) [10:34:38:795]: ******* RunEngine:
           ******* Product: C:\Users\kelley\Downloads\PixelActiveCityScape_v1_6_Demo.msi
           ******* Action:
           ******* CommandLine: **********
MSI (c) (F4:04) [10:34:38:802]: Machine policy value 'DisableUserInstalls' is 0
MSI (c) (F4:04) [10:34:38:830]: Note: 1: 1402 2: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 3: 2
MSI (c) (F4:04) [10:34:39:140]: SOFTWARE RESTRICTION POLICY: Verifying package --> 'C:\Users\kelley\Downloads\PixelActiveCityScape_v1_6_Demo.msi' against software restriction policy
MSI (c) (F4:04) [10:34:39:141]: Note: 1: 2262 2: DigitalSignature 3: -2147287038
MSI (c) (F4:04) [10:34:39:141]: SOFTWARE RESTRICTION POLICY: C:\Users\kelley\Downloads\PixelActiveCityScape_v1_6_Demo.msi is not digitally signed
MSI (c) (F4:04) [10:34:39:142]: SOFTWARE RESTRICTION POLICY: C:\Users\kelley\Downloads\PixelActiveCityScape_v1_6_Demo.msi is permitted to run at the 'unrestricted' authorization level.
MSI (c) (F4:04) [10:34:39:189]: Cloaking enabled.
MSI (c) (F4:04) [10:34:39:190]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (F4:04) [10:34:39:197]: End dialog not enabled
MSI (c) (F4:04) [10:34:39:197]: Original package ==> C:\Users\kelley\Downloads\PixelActiveCityScape_v1_6_Demo.msi
MSI (c) (F4:04) [10:34:39:197]: Package we're running from ==> C:\Users\kelley\AppData\Local\Temp\40a3581.msi
.
.
.

Однако, если я запускаю msiexec / i MyFile.msi / l * v MyLog.TXT , я получаю это:

 === Verbose logging started: 2/12/2009  10:32:19  Build type: SHIP UNICODE 4.00.6001.00  Calling process: C:\Windows\sy
stem32\msiexec.exe ===
MSI (c) (FC:F0) [10:32:19:597]: Resetting cached policy values
MSI (c) (FC:F0) [10:32:19:597]: Machine policy value 'Debug' is 0
MSI (c) (FC:F0) [10:32:19:597]: ******* RunEngine:
           ******* Product: .\PixelActiveCityScape_v1_6_Demo.msi
           ******* Action:
           ******* CommandLine: **********
MSI (c) (FC:F0) [10:32:19:599]: Note: 1: 2203 2: .\PixelActiveCityScape_v1_6_Demo.msi 3: -2147287038
MSI (c) (FC:F0) [10:32:19:600]: MainEngineThread is returning 2
=== Verbose logging stopped: 2/12/2009  10:32:19 ===

И это показывает это диалоговое окно:

Этот установочный пакет не может быть открыт. Убедитесь, что пакет существует и что вы можете получить к нему доступ, или обратитесь к поставщику приложения, чтобы убедитесь, что это действительная Windows Пакет установщика.

Так что это похоже на проблему с разрешениями, но я не совсем уверен, почему и как я могу это исправить. Может быть, мне нужно подписать цифровой файл .msi?

Ответы [ 7 ]

12 голосов
/ 11 февраля 2009

Справочная информация:

Я заметил точно такое же сообщение, когда файл установщика MSI был загружен не полностью, или был поврежден моей антивирусной программой, или был поврежден моим FTP-клиентом.

Сообщение об ошибке фактически приходит от msiexec.exe , который является исполняемой программой системы установщика Windows, которая фактически интерпретирует файлы установщика MSI и устанавливает программное обеспечение на целевой компьютер (ы) клиента.


Чтобы проверить целостность файла MSI:

Рассчитайте сумму MD5 для заведомо исправной копии файла установщика MSI, используя что-то вроде md5.exe . Попросите клиента сделать то же самое для своей копии, а затем сравните хэши. Если результаты отличаются, то клиентская копия файла установщика MSI повреждена.


Например :

На вашем конце:

C:\Documents and Settings\yourbox\Desktop>md5.exe AcroRead.msi
C587C739666E26B2A9B1F5BBAF358808  AcroRead.msi

На стороне клиента:

C:\Documents and Settings\theclient\Desktop>md5.exe AcroRead.msi
90AFFBD9A1954EC9FF029B7AD7183A16  AcroRead.msi
7 голосов
/ 12 марта 2010

Я также столкнулся с этой проблемой ("MainEngineThread возвращает 2"). Эта тема была полезна, чтобы сузить проблему, но я не полностью решил ее.

В нашем случае мы подозреваем, что проблема связана с BitLocker и / или вызовом msiexec с относительными путями (такими как "msiexec / i .. \ foo.msi"). Запуск ".. \ foo.msi" напрямую работает, запуск "msiexec / i foo.msi" в соответствующей папке также работает.

Может быть, эти подсказки помогут кому-то еще. В нашем случае мы изменим структуру каталогов, чтобы избежать "..".

5 голосов
/ 11 февраля 2009

Это сообщение об ошибке выдается msiexec, если обнаруживает, что файл MSI поврежден. Это можно сделать, потому что все файлы MSI имеют контрольную сумму, а некоторые даже имеют цифровую подпись.

К сожалению, такое повреждение MSI-файлов часто случается. Не только из-за нестабильных сетевых подключений при загрузке, но чаще всего из-за вирусных сканеров, которые мешают самой загрузке - если они попытаются «очистить» поток данных, вы получите поврежденный MSI.

Единственный способ исправить это - повторно загрузить файл MSI и, возможно, отключить антивирусный сканер / брандмауэр для этой загрузки. Вы можете проверить наличие вирусов после того, как файл MSI сохранен на диске, прежде чем пытаться установить его.

4 голосов
/ 11 февраля 2009

Вы можете попробовать запустить MSI в командной строке и получить файл журнала.

вроде так: MSI: msiexec / i (имя_файла.MSI) / l * v (имя_файла.TXT)

1 голос
/ 17 сентября 2015

Если кто-то разрабатывает новый установщик и сталкивается с той же ошибкой, проверьте тип выходных данных проекта Bootstrapper. Я добавил новый проект Bootstrapper и скопировал кучу хорошо известного кода. Тип вывода проекта по умолчанию - MSI, и при попытке его проверить я получил идентичный «MainEngineThread возвращает 2» и ту же предыдущую строку.

Установите тип вывода для соответствующего EXE-файла, и он отлично работает.

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

это работает, когда я использую absolute path ms file

пример:

msiexec.exe /i .\a.msi

msiexec.exe /i c:\a.msi

0 голосов
/ 17 сентября 2016

enter image description here

Решение: 1) запустить cmd от имени администратора, 2) F: \ SOFTWARES> msiexec / i node-v4.5.0-x64.msi

...