您的位置:首页 > 其它

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

2014-04-08 15:38 246 查看
原文NSIS:判断并安装.NETFramework4的例子

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

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

01
FunctionGetNetFrameworkVersion
02
;获取.NetFramework版本支持
03
Push$1
04
Push$0
05
ReadRegDWORD$0HKLM
"SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v4\Full"
"Install"
06
ReadRegDWORD$1HKLM
"SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v4\Full"
"Version"
07
StrCmp$01KnowNetFrameworkVersion+1
08
ReadRegDWORD$0HKLM
"SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v3.5"
"Install"
09
ReadRegDWORD$1HKLM
"SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v3.5"
"Version"
10
StrCmp$01KnowNetFrameworkVersion+1
11
ReadRegDWORD$0HKLM
"SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v3.0\Setup"
"InstallSuccess"
12
ReadRegDWORD$1HKLM
"SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v3.0\Setup"
"Version"
13
StrCmp$01KnowNetFrameworkVersion+1
14
ReadRegDWORD$0HKLM
"SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v2.0.50727"
"Install"
15
ReadRegDWORD$1HKLM
"SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v2.0.50727"
"Version"
16
StrCmp$1
""
+1+2
17
StrCpy$1
"2.0.50727.832"
18
StrCmp$01KnowNetFrameworkVersion+1
19
ReadRegDWORD$0HKLM
"SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v1.1.4322"
"Install"
20
ReadRegDWORD$1HKLM
"SOFTWARE\Microsoft\NETFrameworkSetup\NDP\v1.1.4322"
"Version"
21
StrCmp$1
""
+1+2
22
StrCpy$1
"1.1.4322.573"
23
StrCmp$01KnowNetFrameworkVersion+1
24
ReadRegDWORD$0HKLM
"SOFTWARE\Microsoft\.NETFramework\policy\v1.0"
"Install"
25
ReadRegDWORD$1HKLM
"SOFTWARE\Microsoft\.NETFramework\policy\v1.0"
"Version"
26
StrCmp$1
""
+1+2
27
StrCpy$1
"1.0.3705.0"
28
StrCmp$01KnowNetFrameworkVersion+1
29
StrCpy$1
"not.NetFramework"
30
KnowNetFrameworkVersion:
31
Pop$0
32
Exch$1
33
FunctionEnd
然后,在Section区段进行.NET静默安装:

01
Section-.NET
02
CallGetNetFrameworkVersion
03
Pop$R1
04
${If}$R1<
'4.0.30319'
05
SetDetailsPrinttextonly
06
DetailPrint
"正在安装.NETFramework4"
07
SetDetailsPrintlistonly
08
09
SetOutPath
"$TEMP"
10
SetOverwriteon
11
File
"dotNetFx40_Full_x86_x64.exe"
12
ExecWait
'$TEMP\dotNetFx40_Full_x86_x64.exe/q/norestart/ChainingPackageFullX64Bootstrapper'
$R1
13
Delete
"$TEMP\dotNetFx40_Full_x86_x64.exe"
14
${EndIf}
15
SectionEnd
当然,在Section区段可以做到自动在线下载而不把.NET打到安装包中,这样可以减小安装包体积,效果可参考紫辰记账本安装程序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: