Skip to content
This repository has been archived by the owner on Feb 2, 2023. It is now read-only.

Commit

Permalink
Changed target framework to 4.5 and modified Install.nsi
Browse files Browse the repository at this point in the history
Using DotNetChecker script to check .NET Framework presence on installation and eventually download it.
(https://github.com/ReVolly/NsisDotNetChecker)
  • Loading branch information
aleab committed Jul 2, 2017
1 parent 1dc57c2 commit 08d60e1
Show file tree
Hide file tree
Showing 15 changed files with 175 additions and 204 deletions.
2 changes: 1 addition & 1 deletion AutoHotkey.Interop/AutoHotkey.Interop.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>AutoHotkey.Interop</RootNamespace>
<AssemblyName>AutoHotkey.Interop</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
Expand Down
2 changes: 1 addition & 1 deletion ExamplePlugin/ExamplePlugin.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ExamplePlugin</RootNamespace>
<AssemblyName>ExamplePlugin</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileUpgradeFlags>
</FileUpgradeFlags>
Expand Down
160 changes: 0 additions & 160 deletions InstallationScript/DotNET.nsh

This file was deleted.

Binary file added InstallationScript/DotNetChecker.dll
Binary file not shown.
129 changes: 129 additions & 0 deletions InstallationScript/DotNetChecker.nsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
!macro CheckNetFramework FrameworkVersion
Var /GLOBAL dotNetUrl${FrameworkVersion}
Var /GLOBAL dotNetReadableVersion${FrameworkVersion}

!ifndef DOTNET462_URL
!define DOTNET462_URL "http://go.microsoft.com/fwlink/p/?LinkId=780601"
!define DOTNET461_URL "http://go.microsoft.com/fwlink/p/?LinkId=671744"
!define DOTNET46_URL "http://go.microsoft.com/fwlink/?LinkId=528232"
!define DOTNET452_URL "http://go.microsoft.com/fwlink/?LinkId=397708"
!define DOTNET451_URL "http://go.microsoft.com/fwlink/?LinkId=322116"
!define DOTNET45_URL "http://go.microsoft.com/fwlink/?LinkId=225702"
!define DOTNET40Full_URL "http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=0a391abd-25c1-4fc0-919f-b21f31ab88b7&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f9%2f5%2fA%2f95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE%2fdotNetFx40_Full_x86_x64.exe"
!define DOTNET40Client_URL "http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=e5ad0459-cbcc-4b4f-97b6-fb17111cf544&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2f6%2f2%2f562A10F9-C9F4-4313-A044-9C94E0A8FAC8%2fdotNetFx40_Client_x86_x64.exe"
!define DOTNET35_URL "http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe"
!define DOTNET30_URL "http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe"
!define DOTNET20_URL "http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2f6%2f7%2f567758a3-759e-473e-bf8f-52154438565a%2fdotnetfx.exe"
!define DOTNET11_URL "http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=262d25e3-f589-4842-8157-034d1e7cf3a3&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fa%2fa%2fc%2faac39226-8825-44ce-90e3-bf8203e74006%2fdotnetfx.exe"
!define DOTNET10_URL "http://www.microsoft.com/downloads/info.aspx?na=41&srcfamilyid=262d25e3-f589-4842-8157-034d1e7cf3a3&srcdisplaylang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fa%2fa%2fc%2faac39226-8825-44ce-90e3-bf8203e74006%2fdotnetfx.exe"
!endif

${If} ${FrameworkVersion} == "462"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET462_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "4.6.2"
${ElseIf} ${FrameworkVersion} == "461"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET461_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "4.6.1"
${ElseIf} ${FrameworkVersion} == "46"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET46_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "4.6"
${ElseIf} ${FrameworkVersion} == "452"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET452_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "4.52"
${ElseIf} ${FrameworkVersion} == "451"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET451_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "4.51"
${ElseIf} ${FrameworkVersion} == "45"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET45_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "4.5"
${ElseIf} ${FrameworkVersion} == "40Full"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET40Full_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "4.0 Full"
${ElseIf} ${FrameworkVersion} == "40Client"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET40Client_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "4.0 Client"
${ElseIf} ${FrameworkVersion} == "35"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET35_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "3.5"
${ElseIf} ${FrameworkVersion} == "30"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET30_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "3.0"
${ElseIf} ${FrameworkVersion} == "20"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET20_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "2.0"
${ElseIf} ${FrameworkVersion} == "11"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET11_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "1.1"
${ElseIf} ${FrameworkVersion} == "10"
StrCpy $dotNetUrl${FrameworkVersion} ${DOTNET10_URL}
StrCpy $dotNetReadableVersion${FrameworkVersion} "1.0"
${EndIf}

DetailPrint "Checking .NET Framework version..."

Push $0
Push $1
Push $2
Push $3
Push $4
Push $5
Push $6
Push $7

DotNetChecker::IsDotNet${FrameworkVersion}Installed
Pop $0

${If} $0 == "false"
${OrIf} $0 == "f" ; if script is compiled in ANSI mode then we get only an "f" https://github.com/ReVolly/NsisDotNetChecker/issues/4
DetailPrint ".NET Framework $dotNetReadableVersion${FrameworkVersion} not found, download is required for program to run."
Goto NoDotNET${FrameworkVersion}
${Else}
DetailPrint ".NET Framework $dotNetReadableVersion${FrameworkVersion} found, no need to install."
Goto NewDotNET${FrameworkVersion}
${EndIf}

NoDotNET${FrameworkVersion}:
MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION \
".NET Framework not installed. Required version: $dotNetReadableVersion${FrameworkVersion}.$\nDownload .NET Framework $dotNetReadableVersion${FrameworkVersion} from www.microsoft.com?" \
/SD IDYES IDYES DownloadDotNET${FrameworkVersion} IDNO NewDotNET${FrameworkVersion}
goto GiveUpDotNET${FrameworkVersion} ;IDCANCEL

DownloadDotNET${FrameworkVersion}:
DetailPrint "Beginning download of .NET Framework $dotNetReadableVersion${FrameworkVersion}."
NSISDL::download $dotNetUrl${FrameworkVersion} "$TEMP\dotnetfx.exe"
DetailPrint "Completed download."

Pop $0
${If} $0 == "cancel"
MessageBox MB_YESNO|MB_ICONEXCLAMATION \
"Download cancelled. Continue Installation?" \
IDYES NewDotNET${FrameworkVersion} IDNO GiveUpDotNET${FrameworkVersion}
${ElseIf} $0 != "success"
MessageBox MB_YESNO|MB_ICONEXCLAMATION \
"Download failed:$\n$0$\n$\nContinue Installation?" \
IDYES NewDotNET${FrameworkVersion} IDNO GiveUpDotNET${FrameworkVersion}
${EndIf}

DetailPrint "Pausing installation while downloaded .NET Framework installer runs."
ExecWait '$TEMP\dotnetfx.exe /q /c:"install /q"'

DetailPrint "Completed .NET Framework install/update. Removing .NET Framework installer."
Delete "$TEMP\dotnetfx.exe"
DetailPrint ".NET Framework installer removed."
goto NewDotNet${FrameworkVersion}

GiveUpDotNET${FrameworkVersion}:
Abort "Installation cancelled by user."

NewDotNET${FrameworkVersion}:
DetailPrint "Proceeding with remainder of installation."
Pop $7
Pop $6
Pop $5
Pop $4
Pop $3
Pop $2
Pop $1
Pop $0

!macroend
Loading

0 comments on commit 08d60e1

Please sign in to comment.