我正在寻找一些 NSIS 的代码片段来检测和有条件地运行 .NET 4.5 安装程序
这个答案 - NSIS Installer with .NET 4.0 - 太天真了,因为只检查注册表项(而不是值)的存在不会区分 4.0 和 4.5
我正在寻找一些 NSIS 的代码片段来检测和有条件地运行 .NET 4.5 安装程序
这个答案 - NSIS Installer with .NET 4.0 - 太天真了,因为只检查注册表项(而不是值)的存在不会区分 4.0 和 4.5
您不应该检查确切的版本号。这将在未来发生变化(如 4.0 > 4.5 的情况)。而是使用部署指南中的代码。
除此之外,您应该尝试从 .Net 4.5 处理重新启动。
Function CheckAndInstallDotNet
; Magic numbers from http://msdn.microsoft.com/en-us/library/ee942965.aspx
ClearErrors
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Release"
IfErrors NotDetected
${If} $0 >= 378389
DetailPrint "Microsoft .NET Framework 4.5 is installed ($0)"
${Else}
NotDetected:
DetailPrint "Installing Microsoft .NET Framework 4.5"
SetDetailsPrint listonly
ExecWait '"$INSTDIR\Tools\dotNetFx45_Full_setup.exe" /passive /norestart' $0
${If} $0 == 3010
${OrIf} $0 == 1641
DetailPrint "Microsoft .NET Framework 4.5 installer requested reboot"
SetRebootFlag true
${EndIf}
SetDetailsPrint lastused
DetailPrint "Microsoft .NET Framework 4.5 installer returned $0"
${EndIf}
FunctionEnd