[How to] MSI ファイルをインストール時にエラーが発生する場合のログ採取方法

Visual Studio サポート チームのオオカワです。

本日は、簡単な Tips として、MSI ファイルをインストールする際に、何かエラーが出てうまくいかない、という場合に有用なログの採取方法についてお知らせいたします。


Windows インストーラーのログの記録を有効にする方法

レジストリの設定を手動で行う方法

Windows インストーラーのログの記録を有効にするには、Regedit.exe を使用して、レジストリを開き、次のパスとキーを作成します。(既定でキーが存在していればキーの追加は不要です)
値は Installer キーを右クリックして、[新規作成] - [文字列値] を選択して以下の名前、値で作成します。

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
名前 : Logging
データ型 : 文字列値
値 : voicewarmupx

voicewarmupx

値フィールドの文字は、どのような順番でもかまいません。各文字は、異なるログ記録モードを有効にします。各文字の実際の機能は、MSI 1.1 では次のようになります。
v - 詳細出力
o - ディスク領域不足メッセージ
i - 状態メッセージ
c - UI パラメーターの初期値
e - すべてのエラー メッセージ
w - 致命的ではない警告
a - アクションのスタートアップ
r - 特定のアクションの記録
m - メモリ不足または致命的な終了に関する情報
u - ユーザーの要求
p - ターミナルのプロパティ
+ - 既存のファイルに追加
! - 各行をログにフラッシュ
x - デバッグに関する追加情報。"x" フラグが使用できるのは、Windows Server 2003 以降のオペレーティング システムと、MSI 再頒布可能ファイル バージョン 3.0 およびそれ以降のバージョンの MSI 再頒布可能ファイル上に限定されます。
"*" - ワイルドカード。v オプションと x オプションの情報以外のすべての情報を記録します。v オプションと x オプションを含めるには、"/l*vx" と指定してください。

本設定を有効化している場合 %temp% であらわされるディレクトリに、ファイル名が MSI から始まり、拡張子 .log で終わるログファイルが出力されます。tempdir2png

注意

本ログを有効にしている場合、システム パフォーマンスとディスク領域に影響を及ぼすことがございます。また、コントロール パネルの [アプリケーションの追加と削除] を使用するたびに、新しい Msi*.log ファイルが作成されます。不要な際には、今回設定したレジストリキーを削除し、無効化ください。


本ログの設定を自動で行う方法

なお、本ログの設定を自動化するための Fix it が、以下のサポート技術情報に掲載されております。

Windows インストーラーのログの記録を有効にする方法

https://support.microsoft.com/kb/223300/ja

ページ中ほどにある、”Fix it” で解決する、という部分にあるインストーラーにて、ログの取得設定が可能でございます。
レジストリ設定を自動的かつ安全に実施されたい方、こちらの Fix it をご利用いただければ幸いです。


さて次回は、上記のログを使って、Visual Studio 2005 をご利用いただいているお客様によくある以下のシナリオを例に、取得したログの使い方についてお伝えしていこうかと考えています。次回公開までは、取得されたログにどのような内容が記録されているのかまずはご覧ください。

シナリオ

Visual Studio 2005 でインストーラーを作成した。このインストーラーではカスタム動作を使っている。
Windows XP まででは正常にインストールできていたのだが、Windows Vista 以降、インストールに失敗している。
この原因を追究したい。


[Update!!!]

続きを以下のエントリに公開いたしました!ぜひご覧ください!

https://blogs.msdn.com/b/jpvsblog/archive/2011/05/27/step-by-step-guide-msi.aspx

==== Visual Studio サポート チーム オオカワ ====