Created
September 25, 2023 04:24
-
-
Save mikelpr/88cc99e8c760965249922108493102c1 to your computer and use it in GitHub Desktop.
electron-builder nsis download and install Visual C++ redist 2015-2022 (x64)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;Inspired by: | |
; https://gist.github.com/bogdibota/062919938e1ed388b3db5ea31f52955c | |
; https://stackoverflow.com/questions/34177547/detect-if-visual-c-redistributable-for-visual-studio-2013-is-installed | |
; https://stackoverflow.com/a/54391388 | |
; https://github.com/GitCommons/cpp-redist-nsis/blob/main/installer.nsh | |
;Find latests downloads here: | |
; https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist | |
!include LogicLib.nsh | |
; https://github.com/electron-userland/electron-builder/issues/1122 | |
!ifndef BUILD_UNINSTALLER | |
Function checkVCRedist | |
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" "Installed" | |
FunctionEnd | |
!endif | |
!macro customInit | |
Push $0 | |
Call checkVCRedist | |
${If} $0 != "1" | |
MessageBox MB_YESNO "\ | |
NOTE: ${PRODUCT_NAME} requires $\r$\n\ | |
'Microsoft Visual C++ Redistributable'$\r$\n\ | |
to function properly.$\r$\n$\r$\n\ | |
Download and install now?" /SD IDYES IDYES InstallVCRedist IDNO DontInstall | |
InstallVCRedist: | |
inetc::get /CAPTION " " /BANNER "Downloading Microsoft Visual C++ Redistributable..." "https://aka.ms/vs/17/release/vc_redist.x64.exe" "$TEMP\vc_redist.x64.exe" | |
ExecWait "$TEMP\vc_redist.x64.exe /install /norestart" | |
;IfErrors InstallError ContinueInstall ; vc_redist exit code is unreliable :( | |
Call checkVCRedist | |
${If} $0 == "1" | |
Goto ContinueInstall | |
${EndIf} | |
;InstallError: | |
MessageBox MB_ICONSTOP "\ | |
There was an unexpected error installing$\r$\n\ | |
Microsoft Visual C++ Redistributable.$\r$\n\ | |
The installation of ${PRODUCT_NAME} cannot continue." | |
DontInstall: | |
Abort | |
${EndIf} | |
ContinueInstall: | |
Pop $0 | |
!macroend |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment