NSIS 一款非常好的软件安装大包工具
来源:互联网 发布:雷克萨斯es和皇冠知乎 编辑:程序博客网 时间:2024/04/28 17:09
1 检测是否有 net 吗
现在.NET开发的软件已经大行其道,但有些操作系统并不符合软件的运行要求,所以,我们需要在安装程序中进行.NET Framework的判断,如果不符合要求就进行静默安装。
首先,我们在Function区段进行当前.NET版本判断:
源码 打印帮助
01 Function GetNetFrameworkVersion
02 ;获取.Net Framework版本支持
03 Push $1
04 Push $0
05 ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Install"
06 ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Version"
07 StrCmp $0 1 KnowNetFrameworkVersion +1
08 ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" "Install"
09 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静默安装:
源码 打印帮助
01 Section -.NET
02 Call GetNetFrameworkVersion
03 Pop $R1
04 ${If} $R1 < '4.0.30319'
05 SetDetailsPrint textonly
06 DetailPrint "正在安装 .NET Framework 4"
07 SetDetailsPrint listonly
08
09 SetOutPath "$TEMP"
10 SetOverwrite on
11 File "dotNetFx40_Full_x86_x64.exe"
12 ExecWait '$TEMP\dotNetFx40_Full_x86_x64.exe /q /norestart /ChainingPackage FullX64Bootstrapper' $R1
13 Delete "$TEMP\dotNetFx40_Full_x86_x64.exe"
14 ${EndIf}
15 SectionEnd
当然,在Section区段可以做到自动在线下载而不把.NET打到安装包中,这样可以减小安装包体积,效果可
- NSIS 一款非常好的软件安装大包工具
- 推荐一款非常好用的鼠标手势软件StrokeIt
- 分享一款非常好用流畅的gif录制软件
- 推荐一款非常好用的java反编译工具
- 推荐一款非常好用的java反编译工具
- 推荐一款非常好用的远程控制工具--Team Viewer
- 推荐一款非常好用的java反编译工具
- 软件打包工具NSIS安装程序制作系统
- 使用nsis做软件安装
- 一款非常好用的系统恢复工具linux、windows下都可用
- NSIS安装包制做软件的常用小技巧
- NSIS打包的软件开启时已安装检测机制
- NSIS安装工具的System插件的问题
- NSIS常见问题集锦(转载) 大众最好的安装制作工具
- 推荐一款非常好用的效率APP
- [NSIS] 用NSIS做一个软件升级安装包
- 求一款能进行文本替换的软件工具
- 一款手机制作软件类工具的简单分析
- 绘声绘色加载字幕教程
- svn 服务端的执行命令,费了好大劲头
- 程序员的修炼
- 3. javascript 引擎Rhino源代码分析 浅析 实例函数对象及this
- JAVA计算器
- NSIS 一款非常好的软件安装大包工具
- oc的面向对象
- 字符串中最长的数字子串
- iOS开发企业版本分发 Xcode7.1
- 安全攻击
- 调整drawabletop大小
- oc三天
- C#开发微信门户及应用(1)--开始使用微信接口
- prufer sequence