これは.NET 3.5の前提条件であるため、これを知る必要があります。NETブートストラップを含める場合は、Windows Installer 3.1が必要かどうかも確認する必要があります。
今、私はレジストリキーをチェックしています:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\KB893803v2
これはWindows Installer 3.1をチェックしますが、より高いバージョンをチェックしないと思います。 (それを確認または拒否することができませんでした)
この情報を見つけるには、どのレジストリキーを調べる必要がありますか?
編集:私はブートストラップとして使用しているInno Setupでこれを確認する必要があり、そこにdllバージョンを確認する方法がわかりません。
次のレジストリパスでインストーラーmsi.dllを見つけます:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer
値:InstallerLocation
次に、そのファイルからバージョン情報を取得します。
更新:上記の方法は古い!バージョンを検出する新しい方法は、ここに記載されています: http://msdn.Microsoft.com/en-us/library/aa368280%28VS.85%29.aspx
「実行」ウィンドウで「msiexec」と入力します。ウィンドウが開き、最初の行にWindowsインストーラーのバージョンが表示されます。
システムのWindowsインストーラーのバージョンを確認する場合は、Windows\System 32のMSI.DLLのバージョンを確認してください)フォルダー
MSI.DLLを右クリックし、プロパティを選択->詳細タブに移動して、ファイルのバージョンを確認します。
これがMSIファイル自体の中にある場合は、 VersionMsi プロパティを確認できます。
このリンク を確認してくださいworks for me for Windows 7、他のバージョンのwindows Windowsインストーラーのバージョンも確認します。