3
我正在使用NSIS爲我在Visual C++ 2012 Express中執行的項目創建可執行文件。因爲我是初學者,所以我開始使用HM NIS Edit中的安裝嚮導。檢查NSIS中的註冊表
我試圖將Visual C++ 2012 Redistributable與我的程序捆綁在一起,但是每次安裝程序重新運行時,Redistributable都會彈出「修復」&「刪除」選項,而且看起來很煩人。
所以我決定寫NSIS腳本的一點點,這是劇本開始至今:
Var STR
Section CheckForReg
ClearErrors
ReadRegDWORD $0 HKLM "SOFTWARE\Classes\Installer\Dependencies\{8e70e4e1-06d7-470b-9f74-a51bef21088e}" "Version"
ifErrors 0 Blank
StrCpy $STR "$INSTDIR\vcredist_x86.exe"
GoTo End
Blank:
StrCpy $STR ""
End:
SectionEnd
這片被稱爲在腳本的一開始,和全局變量STR適用於:
!define MUI_FINISHPAGE_RUN $STR
不久後。
顯然這是一個非常愚蠢的做法,但我不需要太多。
問題是CheckForReg始終認爲註冊表不存在,並且不會移動到標籤Blank。作爲一個說明,我手動檢查註冊表,每次和註冊表項的樣子:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Dependencies\{8e70e4e1-06d7-470b-9f74-a51bef21088e}]
"Version"="11.0.51106.1"
"DisplayName"="Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.51106"
因此問題是:我在哪裏這個問題呢?它看起來很簡單,但顯然我有一些倒退。
- 刪除的代碼轉儲
哈哈哈男人不我覺得自己像個白癡:P 尼斯答案很簡單,因爲它應該是。 – Izman