11

アプリケーションの .msi インストーラーに問題があるクライアントがいます。このインストーラーの作成には WiX が使用されました。アプリケーションは他の何十台ものマシンに問題なくインストールされていますが、彼のマシンには次のメッセージが表示されます。

このインストール パッケージを開くことができませんでした。アプリケーション ベンダーに問い合わせて、これが有効な Windows インストーラー パッケージであることを確認してください。

私の推測では、次の 2 つの可能性のいずれかです。

  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 ファイルにデジタル署名する必要がありますか?

4

8 に答える 8

13

バックグラウンド:

MSI インストーラー ファイルが完全にダウンロードされていない場合、またはウイルス対策プログラムによって破損した場合、または FTP クライアントによって破損した場合に、まったく同じメッセージが表示されることに気付きました。

エラー メッセージは、実際にはmsiexec.exeから来ています。これは、MSI インストーラー ファイルを実際に解釈し、クライアントのマシンをターゲットとしてソフトウェアをインストールする Windows インストーラー システムの実行可能プログラムです。


MSI ファイルの整合性を確認するには:

md5.exeなどを使用して、MSI インストーラー ファイルの正常なコピーの MD5sum を計算します。クライアントに自分のコピーに対して同じことをさせてから、ハッシュを比較します。結果が異なる場合は、クライアントの 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
于 2009-02-11T18:57:48.320 に答える
5

このエラー メッセージは、MSI ファイルが破損していることを検出すると、msiexec によってスローされます。すべての MSI ファイルにはチェックサムがあり、デジタル署名されているファイルもあるため、これが可能です。

残念ながら、このような MSI ファイルの破損は頻繁に発生します。ダウンロード時の不安定なネットワーク接続だけでなく、ほとんどの場合、ウイルス スキャナーがダウンロード自体を妨害します。ウイルス スキャナーがデータ ストリームを「サニタイズ」しようとすると、MSI が破損することになります。

これを修正する唯一の方法は、MSI ファイルを再ダウンロードし、そのダウンロードのウイルス スキャナー/ファイアウォールを無効にすることです。MSI ファイルをディスクに保存した後、インストールを試みる前にウイルスをチェックできます。

于 2009-02-11T20:36:27.907 に答える
4

コマンド ラインで MSI を開始して、ログ ファイルを取得してみてください。

MSI: msiexec /i (ファイル名.MSI) /l*v (ファイル名.TXT)

于 2009-02-11T19:13:12.743 に答える
1

If anyone is developing a new installer and comes across this same error, check your Bootstrapper project output type. I added a new Bootstrapper project, and copied in a bunch of known-good code. The project output type defaults to MSI, and when attempting to test it I got an identical "MainEngineThread is returning 2" and the same preceding line.

Set the output type to its appropriate EXE and it's working great.

于 2015-09-17T19:46:15.610 に答える