0

1) NSIS インストーラーを使用して vs2005 ランタイムがシステムにインストールされているかどうかを検出する最良の方法はどれですか?

2) ランタイムが検出されない場合、ランタイム ライブラリを追加する最適な方法は次のとおりです。

     a)running an embedded vcredist or 
     b)copying dlls to the installation folder

ありがとう

4

2 に答える 2

2
;-------------------------------
; Test if Visual Studio Redistributables 2005+ SP1 installed
; Returns -1 if there is no VC redistributables intstalled
Function CheckVCRedist
   Push $R0
   ClearErrors
   ReadRegDword $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{7299052b-02a4-4627-81f2-1818da5d550d}" "Version"

   ; if VS 2005+ redist SP1 not installed, install it
   IfErrors 0 VSRedistInstalled
   StrCpy $R0 "-1"

VSRedistInstalled:
   Exch $R0
FunctionEnd

もちろん、自分でファイルをコピーするのではなく、組み込みのインストーラーを実行する必要があります。7299052b-02a4-4627-81f2-1818da5d550dVC ランタイムのバージョンに対してレジストリ キーを確認します。

于 2009-09-18T07:01:52.470 に答える
1

少し前に、アセンブリ キャッシュをチェックするサンプル コードをいくつか作成しました。おそらく、アンインストール エントリをチェックするよりも優れているでしょう。

于 2009-09-19T23:18:56.320 に答える