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

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

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

Function GetNetFrameworkVersion
;获取.Net Framework版本,支持
Push $1
Push $0
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 < '2.0.50727'
  SetDetailsPrint textonly
  DetailPrint "正在安装 .NET Framework 2.0 SP2..."
  SetDetailsPrint listonly

SetOutPath "$TEMP"
  SetOverwrite on
  File "NetFx20SP2_x86.exe"
  ExecWait '$TEMP\NetFx20SP2_x86.exe /quiet /norestart' $R1
  Delete "$TEMP\NetFx20SP2_x86.exe"
  ${EndIf}
SectionEnd

当然,在Section区段可以做到自动在线下载而不把.NET打到安装包中,这样可以减小安装包体积,效果可参考紫辰记账本安装程序。

转载自:http://www.flighty.cn/html/bushu/20110527_126.html

转载于:https://www.cnblogs.com/wuhenke/archive/2011/05/31/2065220.html

NSIS:判断并安装.NET Framework的例子(转载)相关推荐

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

    NSIS:判断并安装.NET Framework 4 的例子 原文 NSIS:判断并安装.NET Framework 4 的例子 现在.NET开发的软件已经大行其道,但有些操作系统并不符合软件的运行要 ...

  2. NSIS脚本学习:判断版本并安装.NET Framework运行环境

    前言 目前开发的程序以基于.net的应用程序为主,程序开发好后,需要进行安装包的生成,及setup文件的生成. 常见的是NSIS工具,之前一直用的单文件打包工具,不适合将运行环境加进去,因此开始使用更 ...

  3. Wix安装程序中判断是否安装的.net framwork 4.5

    Wix安装程序中判断是否安装的.net framwork 4.5 <PropertyRef Id="NETFRAMEWORK40FULL"/> <Property ...

  4. win10安装.NET Framework 3.5的方法

    一.安装方法 安装前务必开启windows自动更新,否则容易安装失败. 1.下载.NET Framework 3.5安装工具包 32位系统/64位系统工具包下载地址:https://download. ...

  5. 用 .Net Framework 4.0 制作的安装程序来安装 .Net Framework 4.0 编写的程序

    文章题目看起来有点绕,解释一下,假如你基于框架写了一个程序,想装到客户机上,但是客户机上可能并没有安装框架,因此你的程序需要预先将框架安装在目标机上,然后再执行一些安装程序的标准功能,如创建快捷方式. ...

  6. web页面判断是否安装某app,从web启动app应用

    web页面判断是否安装某app,从web启动app应用 web页面判断手机里是否安转应用的原理就是:首先试着打开手机端某个app的本地协议:如果超时就转到app下载页,下载该app. URL sche ...

  7. Windows 10离线安装.NET Framework 3.5

    最新的Win10客户端系统中,微软为我们预装了.NET Framework 4.5.而部分应用需要依赖.NET Framework 3.5才能正常运行(如windows live writer),当我 ...

  8. 7万能驱动64位离线_Dism++离线安装.NET Framework 3.5教程

    .NET Framework 3.5是许多应用程序赖以运行的基础环境框架,可谓是Windows系统必装组件,可是有许多用户却遇到错误提示"Windows无法完成请求的更改.参数错误.错误代码 ...

  9. Windows Server 2012 R2/2016/2019无法安装.NET Framework 3.5.1或语言包的解决方法

    Windows Server 2012 R2/2016/2019无法安装.NET Framework 3.5.1或语言包的解决方法 参考文章: (1)Windows Server 2012 R2/20 ...

最新文章

  1. CTO说:Service层的接口是不是多此一举
  2. 基因测序、生物信息分析平台工作站硬件配置推荐2020
  3. python异常值处理实例_Python异常值处理与检测
  4. pymysql 模块 使用目录
  5. linux环境特性的文件夹,在Linux环境下如何消减可执行文件或者动态库的大小
  6. UVALive 4975 Casting Spells
  7. 【大型网站运维之道 天道 人道 运维之道】
  8. phpmemcache
  9. 【Machine Learning 五】Coursera无法观看课程解决方案
  10. 铭瑄显卡不支持Linux,铭瑄主板bios设置显卡方法
  11. matlab6.5版本和matlab7版本以上的区别
  12. 对CMSIS的学习(第1-3部分)
  13. win10/win7 usb转串口驱动下载
  14. 台式计算机cpu允许温度,台式cpu温度多少正常呢?老司机科普一下CPU常见问题
  15. UML中的用例图、活动图、顺序图
  16. 极米newz6x、极米new z8x和当贝D3X的区别哪个好
  17. pxe+kickstart实现企业的无人值守系统
  18. 【完整教程】nginx反向代理wss,实现不修改服务器端websocket代码加密通讯请求
  19. wcdma系统随机接入过程的流程图_一种随机接入方法与流程
  20. 扫描枪中文输入法导致乱码问题

热门文章

  1. JZOJ 5376. 【NOIP2017提高A组模拟9.19】Candy
  2. git本地ben远程分支_Git本地分支和远程分支关联
  3. php连接mysql并查询表数据,php连接mysql并查询数据怎么实现
  4. php三表关联,详解Yii2 hasOne(), hasMany()实现三表关联的两种方法
  5. [CODEVS 1050] 棋盘染色 2
  6. 数列分段pascal程序
  7. BZOJ 1565 Luogu P2805 [NOI2009]植物大战僵尸 (Tarjan判环、最小割)
  8. 麦咭早教机器人_【今日吐槽】这句台词有毒!完全忘不了!(机器人免费送)...
  9. 获取前一天的时间安排表_要想有一个完美的婚礼 这份婚庆策划时间表少不了...
  10. php搜索文件名,php实现按文件名搜索文件的远程文件查找器