正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!
您需要 登录 才可以下载或查看,没有账号?立即注册
x
现在.NET开发的软件已经大行其道,但有些操作系统并不符合软件的运行要求,所以,我们需要在安装程序中进行.NET Framework的判断,如果不符合要求就进行静默安装。
首先,我们在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
复制代码然后,在Section区段进行.NET静默安装: - Section -.NET
- Call GetNetFrameworkVersion
- Pop $R1
- ${If} $R1 < '4.0.30319'
- SetDetailsPrint textonly
- DetailPrint "正在安装 .NET Framework 4"
- SetDetailsPrint listonly
- SetOutPath "$TEMP"
- SetOverwrite on
- File "dotNetFx40_Full_x86_x64.exe"
- ExecWait '$TEMP\dotNetFx40_Full_x86_x64.exe /q /norestart /ChainingPackage FullX64Bootstrapper' $R1
- Delete "$TEMP\dotNetFx40_Full_x86_x64.exe"
- ${EndIf}
- SectionEnd
复制代码当然,在Section区段可以做到自动在线下载而不把.NET打到安装包中,这样可以减小安装包体积。
|