把.net4.6安裝包打包進安裝程式,
關鍵腳本如下:
頭部參考字串對比庫
!include "WordFunc.nsh"
新建一個Section,.Net4.6的檔案版本號是4.6.00081,其它的版本需要在其對應的完整安裝包右鍵屬性,檔案詳情中查看,
Section -.NET Framework
SetDetailsPrint both
DetailPrint "運行環境檢測中..."
Call GetNetFrameworkVersion
Pop $R1
${VersionCompare} $R1 '4.6.00081' $1
${If} $1 == '2'
SetDetailsPrint textonly
DetailPrint "正在安裝所需環境..."
ExecWait '"$INSTDIR\4.6.exe"' $R1
${EndIf}
SectionEnd
新建一個Function用來執行檢測已安裝的.Net版本(來自百度)
Function GetNetFrameworkVersion
;獲取.Net Framework版本支持
Push $1
Push $0
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Install"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Version"
StrCmp $0 1 KnowNetFrameworkVersion +1
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" "Install"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" "Version"
StrCmp $0 1 KnowNetFrameworkVersion +1
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "InstallSuccess"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "Version"
StrCmp $0 1 KnowNetFrameworkVersion +1
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Install"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Version"
StrCmp $1 "" +1 +2
StrCpy $1 "2.0.50727.832"
StrCmp $0 1 KnowNetFrameworkVersion +1
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Install"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Version"
StrCmp $1 "" +1 +2
StrCpy $1 "1.1.4322.573"
StrCmp $0 1 KnowNetFrameworkVersion +1
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0" "Install"
ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0" "Version"
StrCmp $1 "" +1 +2
StrCpy $1 "1.0.3705.0"
StrCmp $0 1 KnowNetFrameworkVersion +1
StrCpy $1 "not .NetFramework"
KnowNetFrameworkVersion:
Pop $0
Exch $1
FunctionEnd
然后打包生成安裝包,這樣就可以在沒有.Net4.6的環境的機器上安裝的時候自動安裝.net4.6了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/112911.html
標籤:其他
上一篇:I.MX6Q(SAIL-IMX6Q)學習筆記——開發板的選擇
下一篇:navicat2059錯誤的解決
