I'm after some code snippets for NSIS to detect and conditionally run the .NET 4.5 installer
This answer - NSIS Installer with .NET 4.0 - is too naive as checking only the presense of the registry key (not the value) will not discriminate between 4.0 and 4.5
You shouldn't check for an exact version number. This will change in the future (as was the case for 4.0 > 4.5). Instead use the codes from the deployment guide.
In addition to that you should try to handle the reboot from .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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With