[mapguide-commits] r8504 - in trunk/Tools/Maestro: . Install Thirdparty/NSIS/Plugins

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Sun Jan 18 05:11:04 PST 2015


Author: jng
Date: 2015-01-18 05:11:04 -0800 (Sun, 18 Jan 2015)
New Revision: 8504

Added:
   trunk/Tools/Maestro/Install/DotNetChecker.nsh
   trunk/Tools/Maestro/Thirdparty/NSIS/Plugins/DotNetChecker.dll
Modified:
   trunk/Tools/Maestro/Install/Maestro.nsi
   trunk/Tools/Maestro/build.bat
Log:
#2522: Update installer check

Added: trunk/Tools/Maestro/Install/DotNetChecker.nsh
===================================================================
--- trunk/Tools/Maestro/Install/DotNetChecker.nsh	                        (rev 0)
+++ trunk/Tools/Maestro/Install/DotNetChecker.nsh	2015-01-18 13:11:04 UTC (rev 8504)
@@ -0,0 +1,114 @@
+!macro CheckNetFramework FrameworkVersion
+	Var /GLOBAL dotNetUrl
+	Var /GLOBAL dotNetReadableVersion
+
+	!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"
+
+	${If} ${FrameworkVersion} == "452"
+		StrCpy $dotNetUrl ${DOTNET452_URL}
+		StrCpy $dotNetReadableVersion "4.52"
+	${ElseIf} ${FrameworkVersion} == "451"
+		StrCpy $dotNetUrl ${DOTNET451_URL}
+		StrCpy $dotNetReadableVersion "4.51"
+	${ElseIf} ${FrameworkVersion} == "45"
+		StrCpy $dotNetUrl ${DOTNET45_URL}
+		StrCpy $dotNetReadableVersion "4.5"
+	${ElseIf} ${FrameworkVersion} == "40Full"
+		StrCpy $dotNetUrl ${DOTNET40Full_URL}
+		StrCpy $dotNetReadableVersion "4.0 Full"
+	${ElseIf} ${FrameworkVersion} == "40Client"
+		StrCpy $dotNetUrl ${DOTNET40Client_URL}
+		StrCpy $dotNetReadableVersion "4.0 Client"
+	${ElseIf} ${FrameworkVersion} == "35"
+		StrCpy $dotNetUrl ${DOTNET35_URL}
+		StrCpy $dotNetReadableVersion "3.5"
+	${ElseIf} ${FrameworkVersion} == "30"
+		StrCpy $dotNetUrl ${DOTNET30_URL}
+		StrCpy $dotNetReadableVersion "3.0"
+	${ElseIf} ${FrameworkVersion} == "20"
+		StrCpy $dotNetUrl ${DOTNET20_URL}
+		StrCpy $dotNetReadableVersion "2.0"
+	${ElseIf} ${FrameworkVersion} == "11"
+		StrCpy $dotNetUrl ${DOTNET11_URL}
+		StrCpy $dotNetReadableVersion "1.1"
+	${ElseIf} ${FrameworkVersion} == "10"
+		StrCpy $dotNetUrl ${DOTNET10_URL}
+		StrCpy $dotNetReadableVersion "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"
+		DetailPrint ".NET Framework $dotNetReadableVersion not found, download is required for program to run."
+		Goto NoDotNET
+	${Else}
+		DetailPrint ".NET Framework $dotNetReadableVersion found, no need to install."
+		Goto NewDotNET
+	${EndIf}
+
+NoDotNET:
+	MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION \
+	".NET Framework not installed. Required version: $dotNetReadableVersion.$\nDownload .NET Framework $dotNetReadableVersion from www.microsoft.com?" \
+	/SD IDYES IDYES DownloadDotNET IDNO NewDotNET
+	goto GiveUpDotNET ;IDCANCEL
+
+DownloadDotNET:
+	DetailPrint "Beginning download of .NET Framework $dotNetReadableVersion."
+	NSISDL::download $dotNetUrl "$TEMP\dotnetfx.exe"
+	DetailPrint "Completed download."
+
+	Pop $0
+	${If} $0 == "cancel"
+		MessageBox MB_YESNO|MB_ICONEXCLAMATION \
+		"Download cancelled.  Continue Installation?" \
+		IDYES NewDotNET IDNO GiveUpDotNET
+	${ElseIf} $0 != "success"
+		MessageBox MB_YESNO|MB_ICONEXCLAMATION \
+		"Download failed:$\n$0$\n$\nContinue Installation?" \
+		IDYES NewDotNET IDNO GiveUpDotNET
+	${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
+
+GiveUpDotNET:
+	Abort "Installation cancelled by user."
+
+NewDotNET:
+	DetailPrint "Proceeding with remainder of installation."
+	Pop $0
+	Pop $1
+	Pop $2
+	Pop $3
+	Pop $4
+	Pop $5
+	Pop $6
+	Pop $7
+
+!macroend
\ No newline at end of file

Modified: trunk/Tools/Maestro/Install/Maestro.nsi
===================================================================
--- trunk/Tools/Maestro/Install/Maestro.nsi	2015-01-18 12:32:27 UTC (rev 8503)
+++ trunk/Tools/Maestro/Install/Maestro.nsi	2015-01-18 13:11:04 UTC (rev 8504)
@@ -11,6 +11,9 @@
 ; Include NSIS headers
 ;----------------------
 
+# .net Checker
+!include "DotNetChecker.nsh"
+
 # Modern UI 2
 !include "MUI2.nsh"
 
@@ -328,16 +331,7 @@
     !endif
     
     !insertmacro MUI_LANGDLL_DISPLAY
-
-    ; Check for .NET Framework 4.0
-    ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" Install
-    IntOp $8 $0 & 1
-    IntCmp $8 1 done noDotNet done 
-
-    noDotNet: 
-        MessageBox MB_OK|MB_ICONINFORMATION "${INST_PRODUCT_QUALIFIED} requires that the .net Framework 4.0 is installed. Please download and install the .net Framework 4.0 before installing ${INST_PRODUCT}."
-        Quit
-    done:
+    !insertmacro CheckNetFramework 45
 FunctionEnd
 
 Function LaunchLink

Added: trunk/Tools/Maestro/Thirdparty/NSIS/Plugins/DotNetChecker.dll
===================================================================
(Binary files differ)


Property changes on: trunk/Tools/Maestro/Thirdparty/NSIS/Plugins/DotNetChecker.dll
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Modified: trunk/Tools/Maestro/build.bat
===================================================================
--- trunk/Tools/Maestro/build.bat	2015-01-18 12:32:27 UTC (rev 8503)
+++ trunk/Tools/Maestro/build.bat	2015-01-18 13:11:04 UTC (rev 8504)
@@ -2,7 +2,7 @@
 SET TYPEACTION=build
 SET TYPEBUILD=Release
 SET PLATFORM=Any CPU
-SET RELEASE_VERSION=5.0b1
+SET RELEASE_VERSION=6.0a4
 SET OLDPATH=%PATH%
 SET PATH=%PATH%;%CD%\Thirdparty\NSIS;C:\Windows\Microsoft.NET\Framework\v4.0.30319
 SET SLNDIR=%CD%



More information about the mapguide-commits mailing list