0

Visual C++ 2015 x86 再頒布可能パッケージが必要な DLL を読み込んで呼び出す前に、それがインストールされているかどうかを確認するソフトウェアがあります。MsiQueryProductStateチェックは、次の宣言を使用して、への相互運用呼び出しを介して行われます

[DllImport("msi.dll", SetLastError = true)]
public static extern INSTALLSTATE MsiQueryProductState(string product);

そして呼び出しは

Win32API.MsiQueryProductState("{A2563E55-3BEC-3828-8D67-E5E8B9E8B675}")

これは以前は機能していましたが、Windows 10 と元の更新されていない再配布可能ファイルがインストールされている他のマシンでも機能します。

C# Windows デスクトップ開発用の Update 2 で VS2015 を使用します。これには、再配布可能な Update 2 が含まれています。

数週間前、Windows 7 を Windows 10 にアップグレードしたところ、昨日、チェックが戻るから戻ってきたことがわかりましINSTALLSTATE_DEFAULTINSTALLSTATE_UNKNOWN。アップグレード後に初めてわかったので、これが問題と関係があるかどうかはわかりません。

グーグルで検索しても何も見つからなかったので、レジストリと再配布可能なインストール ログ ファイルを検索したところ、次のキーが見つかりました。

{BD9CFD69-EB91-354E-9C98-D439E6091932}
{2e085fd2-a3e4-4b39-8e10-6b8d35f55244}
{B5FC62F5-A367-37A5-9FD2-A6E137C0096F}
{BE960C1C-7BAD-3DE6-8B1A-2616FE532845}

しかし、私がそれを正しく行っているかどうかは、まったくわかりません。最初の 2 つが返さINSTALLSTATE_UNKNOWNれ、後の 2 つが返されINSTALLSTATE_DEFAULTます。これは機能しますが、それが正しいかどうかはわかりません。すべてのバージョンと更新で同じキーが使用されると思いました。

だから、私が尋ねようとしている質問は、Visual C++ 2015 x86 Redistributables の互換性のあるバージョンがインストールされているかどうかを知るために、どのキーを照会する必要があるかということです。

4

0 に答える 0