杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1673|回复: 0

NSIS:判断并安装.NET Framework 4 的实例

[复制链接]
发表于 2015-2-3 22:15:22 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x

现在.NET开发的软件已经大行其道,但有些操作系统并不符合软件的运行要求,所以,我们需要在安装程序中进行.NET Framework的判断,如果不符合要求就进行静默安装。


首先,我们在Function区段进行当前.NET版本判断:

  1. Function GetNetFrameworkVersion
  2. ;获取.Net Framework版本支持
  3. Push $1
  4. Push $0
  5. ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Install"
  6. ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Version"
  7. StrCmp $0 1 KnowNetFrameworkVersion +1
  8. ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" "Install"
  9. ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" "Version"
  10. StrCmp $0 1 KnowNetFrameworkVersion +1
  11. ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "InstallSuccess"
  12. ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "Version"
  13. StrCmp $0 1 KnowNetFrameworkVersion +1
  14. ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Install"
  15. ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Version"
  16. StrCmp $1 "" +1 +2
  17. StrCpy $1 "2.0.50727.832"
  18. StrCmp $0 1 KnowNetFrameworkVersion +1
  19. ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Install"
  20. ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Version"
  21. StrCmp $1 "" +1 +2
  22. StrCpy $1 "1.1.4322.573"
  23. StrCmp $0 1 KnowNetFrameworkVersion +1
  24. ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0" "Install"
  25. ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0" "Version"
  26. StrCmp $1 "" +1 +2
  27. StrCpy $1 "1.0.3705.0"
  28. StrCmp $0 1 KnowNetFrameworkVersion +1
  29. StrCpy $1 "not .NetFramework"
  30. KnowNetFrameworkVersion:
  31. Pop $0
  32. Exch $1
  33. FunctionEnd
复制代码

然后,在Section区段进行.NET静默安装:

  1. Section -.NET
  2. Call GetNetFrameworkVersion
  3. Pop $R1
  4. ${If} $R1 < '4.0.30319'
  5. SetDetailsPrint textonly
  6. DetailPrint "正在安装 .NET Framework 4"
  7. SetDetailsPrint listonly

  8. SetOutPath "$TEMP"
  9. SetOverwrite on
  10. File "dotNetFx40_Full_x86_x64.exe"
  11. ExecWait '$TEMP\dotNetFx40_Full_x86_x64.exe /q /norestart /ChainingPackage FullX64Bootstrapper' $R1
  12. Delete "$TEMP\dotNetFx40_Full_x86_x64.exe"
  13. ${EndIf}
  14. SectionEnd
复制代码

当然,在Section区段可以做到自动在线下载而不把.NET打到安装包中,这样可以减小安装包体积。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-17 21:25 , Processed in 0.101499 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表