1

インストールの一部としてvcredist_x86.exe(バージョン9.0.xx)を実行するインストーラーを作成しました。ただし、インストールする前に、ユーザーのシステムに既に存在するかどうかを確認したいと思います。基本的に、DLLが存在することだけでなく、それらが正しいバージョン番号を持っていることを検出する必要があります。それを行うための信頼できる方法はありますか?

私はNSISを使用していますが、どんな解決策でも歓迎します。

4

2 に答える 2

1

これを試して:

!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
于 2012-01-11T07:36:31.377 に答える
0

それを行う簡単な方法はないので、パッケージがすでにインストールされているかどうかに関係なく、常にパッケージをインストールすることになりました。とにかく小さなインストールなので、大きな違いはありません。

于 2011-12-18T09:14:39.563 に答える