インストールの一部としてvcredist_x86.exe(バージョン9.0.xx)を実行するインストーラーを作成しました。ただし、インストールする前に、ユーザーのシステムに既に存在するかどうかを確認したいと思います。基本的に、DLLが存在することだけでなく、それらが正しいバージョン番号を持っていることを検出する必要があります。それを行うための信頼できる方法はありますか?
私はNSISを使用していますが、どんな解決策でも歓迎します。
インストールの一部としてvcredist_x86.exe(バージョン9.0.xx)を実行するインストーラーを作成しました。ただし、インストールする前に、ユーザーのシステムに既に存在するかどうかを確認したいと思います。基本的に、DLLが存在することだけでなく、それらが正しいバージョン番号を持っていることを検出する必要があります。それを行うための信頼できる方法はありますか?
私はNSISを使用していますが、どんな解決策でも歓迎します。
これを試して:
!include "x64.nsh"
セクション
var / GLOBAL hasCRT
!CRTCHECKDLLmsvcr80.dllを定義します
!define CRTCHECKNAME'Microsoft.VC80.CRT、version = "8.0.50727.6195"、type = "win32"、processorArchitecture = "x86"、publicKeyToken = "1fc8b3b9a1e18e3b"'
'${CRTCHECKDLL}'をプッシュします
'${CRTCHECKNAME}'をプッシュします
WinSxS_HasAssemblyを呼び出す
pop $ hasCRT
DetailPrint $ {CRTCHECKDLL} = $ hasCRT
SectionEnd
それを行う簡単な方法はないので、パッケージがすでにインストールされているかどうかに関係なく、常にパッケージをインストールすることになりました。とにかく小さなインストールなので、大きな違いはありません。