NSIS检测.NET Framework并在线下载

Section -.NET Framework
  ;检测是否是需要的.NET Framework版本
  Call GetNetFrameworkVersion
  Pop $R1
  ;${If} $R1 < ‘2.0.50727‘
  ;${If} $R1 < ‘3.5.30729.4926‘
  ${If} $R1 < ‘4.0.30319‘
  ;${If} $R1 < ‘4.5.52747‘
    MessageBox MB_YESNO|MB_ICONQUESTION "此软件运行需要.NET Framework 4.0运行环境,但您机器上似乎没有安装此环境。$\r$\n您有两个选择:$\r$\n1.您自己到互联网上下载.NET Framework 4.0安装,然后再运行此软件$\r$\n2.使用此安装程序在线下载并安装.NET Framework 4.0$\r$\n$\r$\n现在在线下载并安装.NET Framework 4.0,请确认您的机器已连接互联网.继续吗?" IDNO +2
      Call DownloadNetFramework4
	${ENDIF}
SectionEnd

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

Function DownloadNetFramework2
;下载 .NET Framework 2.0 SP2
  NSISdl::download /TRANSLATE2 ‘正在下载 %s‘ ‘正在连接...‘ ‘(剩余 1 秒)‘ ‘(剩余 1 分钟)‘ ‘(剩余 1 小时)‘ ‘(剩余 %u 秒)‘ ‘(剩余 %u 分钟)‘ ‘(剩余 %u 小时)‘ ‘已完成:%skB(%d%%) 大小:%skB 速度:%u.%01ukB/s‘ /TIMEOUT=7500 /NOIEPROXY ‘http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe‘ ‘$TEMP\NetFx20SP2_x86.exe‘
  Pop $R0
  StrCmp $R0 "success" 0 +3

  SetDetailsPrint textonly
  DetailPrint "正在安装 .NET Framework 2.0 SP2..."
  SetDetailsPrint listonly
  ExecWait ‘$TEMP\NetFx20SP2_x86.exe /quiet /norestart‘ $R1
  Delete "$TEMP\NetFx20SP2_x86.exe"

FunctionEnd

Function DownloadNetFramework35
;下载 .NET Framework 3.5 SP1
  NSISdl::download /TRANSLATE2 ‘正在下载 %s‘ ‘正在连接...‘ ‘(剩余 1 秒)‘ ‘(剩余 1 分钟)‘ ‘(剩余 1 小时)‘ ‘(剩余 %u 秒)‘ ‘(剩余 %u 分钟)‘ ‘(剩余 %u 小时)‘ ‘已完成:%skB(%d%%) 大小:%skB 速度:%u.%01ukB/s‘ /TIMEOUT=7500 /NOIEPROXY ‘http://download.microsoft.com/download/2/0/E/20E90413-712F-438C-988E-FDAA79A8AC3D/dotnetfx35.exe‘ ‘$TEMP\dotnetfx35.exe‘
  Pop $R0
  StrCmp $R0 "success" 0 +2

  SetDetailsPrint textonly
  DetailPrint "正在安装 .NET Framework 3.5 SP1..."
  SetDetailsPrint listonly
  ExecWait ‘$TEMP\dotnetfx35.exe /quiet /norestart‘ $R1
  Delete "$TEMP\dotnetfx35.exe"

FunctionEnd

Function DownloadNetFramework4
;下载 .NET Framework 4.0
  NSISdl::download /TRANSLATE2 ‘正在下载 %s‘ ‘正在连接...‘ ‘(剩余 1 秒)‘ ‘(剩余 1 分钟)‘ ‘(剩余 1 小时)‘ ‘(剩余 %u 秒)‘ ‘(剩余 %u 分钟)‘ ‘(剩余 %u 小时)‘ ‘已完成:%skB(%d%%) 大小:%skB 速度:%u.%01ukB/s‘ /TIMEOUT=7500 /NOIEPROXY ‘http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe‘ ‘$TEMP\dotNetFx40_Full_x86_x64.exe‘
  Pop $R0
  StrCmp $R0 "success" 0 +2
  
  SetDetailsPrint textonly
  DetailPrint "正在安装 .NET Framework 4.0 Full..."
  SetDetailsPrint listonly
  ExecWait ‘$TEMP\dotNetFx40_Full_x86_x64.exe /quiet /norestart‘ $R1
  Delete "$TEMP\dotNetFx40_Full_x86_x64.exe"
  
FunctionEnd

Function DownloadNetFramework45
;下载 .NET Framework 4.5
  NSISdl::download /TRANSLATE2 ‘正在下载 %s‘ ‘正在连接...‘ ‘(剩余 1 秒)‘ ‘(剩余 1 分钟)‘ ‘(剩余 1 小时)‘ ‘(剩余 %u 秒)‘ ‘(剩余 %u 分钟)‘ ‘(剩余 %u 小时)‘ ‘已完成:%skB(%d%%) 大小:%skB 速度:%u.%01ukB/s‘ /TIMEOUT=7500 /NOIEPROXY ‘http://download.microsoft.com/download/E/2/1/E21644B5-2DF2-47C2-91BD-63C560427900/NDP452-KB2901907-x86-x64-AllOS-ENU.exe‘ ‘$TEMP\NDP452-KB2901907-x86-x64-AllOS-ENU.exe‘
  Pop $R0
  StrCmp $R0 "success" 0 +2

  SetDetailsPrint textonly
  DetailPrint "正在安装 .NET Framework 4.5.2 ..."
  SetDetailsPrint listonly
  ExecWait ‘$TEMP\NDP452-KB2901907-x86-x64-AllOS-ENU.exe /quiet /norestart‘ $R1
  Delete "$TEMP\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"

FunctionEnd
时间: 2024-10-10 03:48:57

NSIS检测.NET Framework并在线下载的相关文章

Android SDK在线下载安装问题--**Image项总是安装错误

这几天,重新进行Android环境配置,在线下载并安装Android SDK时,别的项目均可正确安装,但是全部或部分的**Image项安装不成功,不论是改hosts文件,还是修改option项中的相关设置均不成功. 从实际操作感觉来看**Image项和安装顺序有关.如果选择全部未安装上的**Image项,进行Accept后,总归失败:但是一项项按照顺序进行Accept下载安装,便可以成功,即需要一个一个Download & install.

分享一个免费的在线Youtube视频在线下载网站(52Youtube.com),下载技术视频方便很多

分享一个 免费的在线Youtube视频在线下载网站,下载技术视频方便很多. 网址是 www.52youtube.com ,受限的Youtube视频也能下(年龄,地域限制等),比较不错. 

php实现在线下载程序安装包功能

在线下载程序安装包可以很方便在服务器端下载各种程序安装包(Discuz!.phpwind.Dedecms.WordPress....等一些常用程序)并存储在服务器,大大减少站长上传程序安装包时间.默认密码13712489797(请编辑本文件第2行修改) 在线下载程序安装包 更新日志:2014/11/02 重新修改了远程文件列表,文件列表不再局限于一个下拉框里;修正密码频繁验证2014/08/14 v1.1和v1.0的区别在于1.1增加了下载完成后会提示是否解压文件 2014/08/11 在线下载

WP移动设备压缩与解压控件Xceed Zip for .NET Compact Framework控件下载及详细介绍使用方法

Xceed Zip for .NET Compact Framework 控件是一款健全的文件压缩和解压缩控件,提供了灵活的ZIP.gZip.流压缩,分割和合并ZIP,创建自定义解压文件. 具体功能: 完全支持.NET Compact Framework 2.0以及以上 100%可管理的代码,由C#编写,面向对象设计 支持在硬盘.内存.FTP站点里创建新的ZIP文件,或者更新存在的ZIP文件 完全兼容WinZip12,支持LZMA算法 支持Zip64 Zip文件格式,对文件大小没有限制 支持从硬

在线下载GooglePlay App

本文分享的是一个网站,它提供在线下载GooglePlay  App的服务 1.APK Downloader 网址:http://apps.evozi.com/apk-downloader/ 用法: 1.copy app的Url 2.past步骤1的url,到输入框中,点击 按钮 3.等待片刻后,就大功告成 以上所讲述内容 版权归:http://apps.evozi.com/apk-downloader/ 补充 其它的在线下载网站 1.apkpure http://apkpure.com/ 3.a

asp.net 将dt转换成excel 在线下载

1.方法 private StringWriter GetStringWriter(DataTable dt) { StringWriter sw = new StringWriter(); //读列名 foreach (DataColumn dc in dt.Columns) sw.Write(dc.ColumnName + "\t"); //读列值 //重新的一行 sw.Write(sw.NewLine); if (dt != null) { foreach (DataRow dr

检测.net framework 版本

项目中,自己要制作asp.net项目的安装文件,由于项目依赖于.net framework 3.5 sp1,故需检测环境是否符合要求,才能安装程序 度娘找到检测方案:各.net版本对应的安装补录下都有msbuild.exe,可通过dos命令运行msbuild.exe -version查看输出版本 (参考:http://blog.csdn.net/yapingxin/article/details/7320129 ) 以下为项目中制作安装程序用于检测.net framework 3.5 sp1 命

java 的在线下载文件 .pdf

java  的在线下载文件  .pdf 1.下载资源的本地位置 2.设置响应头 3.下载代码 1 PeriodicalResource periodicalResource = periodicalResourceService.get(id); 2 String filePath = periodicalResource.getAttachment();//获取资源位置 3 File file = new File(periodicalBaseDir + filePath);//本地资源位置

STM32下载失败,st-link v2 在线下载sw模式检测不到

新焊接的两个STM32板子中,有一个下载失败,在KEIL中出现ST-LINK V2 SW模式下检测不到设备,但是在JTAG模式下能检测到设备,如下图 经过检测发现在焊接过程中JTMS(SWDIO)引脚和GND引脚短路,除锡后下载正常.如下图