Re: .NET Framework 4.7
Posted: 17.05.2017, 19:50
Die neuen Static-Links (dotnet; sowie KB4019990 in die statics für w61/w62).
UpdateInstaller.au3
SetTargetEnvVars.cmd
DoUpdate.cmd
UpdateInstaller.au3
- Code: Select all
Dim Const $path_rel_instdotnet46 = "\dotnet\NDP46*.exe"
+Dim Const $path_rel_instdotnet47 = "\dotnet\NDP47*.exe"
...
Func DotNet4TargetVersion()
If ( (@OSVersion = "WIN_VISTA") OR (@OSVersion = "WIN_2008") ) Then
Return "4.6.000"
Else
- Return "4.6.015"
+ Return "4.7.020"
EndIf
EndFunc
Func DotNet4DisplayVersion()
If ( (@OSVersion = "WIN_VISTA") OR (@OSVersion = "WIN_2008") ) Then
Return "4.6"
Else
- Return "4.6.2"
+ Return "4.7"
EndIf
EndFunc
...
Func DotNet4InstPresent($basepath)
- Return $path_rel_instdotnet46
+ If ( (@OSVersion = "WIN_VISTA") OR (@OSVersion = "WIN_2008") ) Then
+ Return $path_rel_instdotnet46
+ Else
+ Return $path_rel_instdotnet47
+ EndIf
EndFunc
...
- OR ( (DotNet4MainVersion() <> "4.5") AND (DotNet4MainVersion() <> "4.6") AND (NOT IsCheckBoxChecked($dotnet4)) ) _
+ OR ( (DotNet4MainVersion() <> "4.5") AND (DotNet4MainVersion() <> "4.6") AND (DotNet4MainVersion() <> "4.7") AND (NOT IsCheckBoxChecked($dotnet4)) ) _
OR (WMFMainVersion() = WMFTargetVersion()) ) Then
...
Case $dotnet4 ; .NET 4 check box toggled
- If ( ( (IsCheckBoxChecked($dotnet4)) OR (DotNet4MainVersion() = "4.5") OR (DotNet4MainVersion() = "4.6") ) _
+ If ( ( (IsCheckBoxChecked($dotnet4)) OR (DotNet4MainVersion() = "4.5") OR (DotNet4MainVersion() = "4.6") OR (DotNet4MainVersion() = "4.7") ) _
SetTargetEnvVars.cmd
- Code: Select all
set DOTNET4_VER_TARGET_MAJOR=4
-set DOTNET4_VER_TARGET_MINOR=6
-set DOTNET4_VER_TARGET_BUILD=01500
set DOTNET4_VER_TARGET_REVIS=0
...
:Windows6.0
...
+set DOTNET4_VER_TARGET_MINOR=6
set DOTNET4_VER_TARGET_BUILD=00081
...
:Windows 6.1
...
+set DOTNET4_VER_TARGET_MINOR=7
+set DOTNET4_VER_TARGET_BUILD=02053
+set DOTNET4_PREREQ_ID=4019990
set WOU_ENDLESS=9
...
:Windows6.2
...
+set DOTNET4_VER_TARGET_MINOR=7
+set DOTNET4_VER_TARGET_BUILD=02053
+set DOTNET4_PREREQ_ID=4019990
set WOU_ENDLESS=6
...
:Windows6.3
...
+set DOTNET4_VER_TARGET_MINOR=7
+set DOTNET4_VER_TARGET_BUILD=02053
set WOU_ENDLESS=6
...
:Windows10.0
...
+set DOTNET4_VER_TARGET_MINOR=7
+set DOTNET4_VER_TARGET_BUILD=02053
set WOU_ENDLESS=3
DoUpdate.cmd
- Code: Select all
rem *** Install .NET Framework 4 ***
if "%INSTALL_DOTNET4%" NEQ "/instdotnet4" goto SkipDotNet4Inst
echo Checking .NET Framework 4 installation state...
if %DOTNET4_VER_MAJOR% LSS %DOTNET4_VER_TARGET_MAJOR% goto InstallDotNet4
if %DOTNET4_VER_MAJOR% GTR %DOTNET4_VER_TARGET_MAJOR% goto SkipDotNet4Inst
if %DOTNET4_VER_MINOR% LSS %DOTNET4_VER_TARGET_MINOR% goto InstallDotNet4
if %DOTNET4_VER_MINOR% GTR %DOTNET4_VER_TARGET_MINOR% goto SkipDotNet4Inst
if %DOTNET4_VER_BUILD% GEQ %DOTNET4_VER_TARGET_BUILD% goto SkipDotNet4Inst
:InstallDotNet4
+if exist %SystemRoot%\Temp\wou_net4pre_tried.txt goto SkipDotNet4Inst
+if "%DOTNET4_PREREQ_ID%"=="" (goto InstallDotNet4Main)
+echo Checking .NET Framework 4 prerequisites...
+%CSCRIPT_PATH% //Nologo //B //E:vbs ListInstalledUpdateIds.vbs
+if exist "%TEMP%\InstalledUpdateIds.txt" (
+ %SystemRoot%\System32\find.exe /I "%DOTNET4_PREREQ_ID%" "%TEMP%\InstalledUpdateIds.txt" >nul 2>&1
+ if errorlevel 1 (
+ echo %DOTNET4_PREREQ_ID%>"%TEMP%\MissingUpdateIds.txt"
+ del "%TEMP%\InstalledUpdateIds.txt"
+ ) else (
+ del "%TEMP%\InstalledUpdateIds.txt"
+ )
+) else (
+ echo %DOTNET4_PREREQ_ID%>"%TEMP%\MissingUpdateIds.txt"
+)
+call ListUpdatesToInstall.cmd /excludestatics /ignoreblacklist
+if errorlevel 1 goto ListError
+if exist "%TEMP%\UpdatesToInstall.txt" (
+ echo Installing .NET Framework 4 prerequisites...
+ call InstallListedUpdates.cmd /selectoptions %VERIFY_MODE% /ignoreerrors
+ if not errorlevel 1 (
+ if not exist %SystemRoot%\Temp\nul md %SystemRoot%\Temp
+ echo. >%SystemRoot%\Temp\wou_net4pre_tried.txt
+ set RECALL_REQUIRED=1
+ goto Installed
+ )
+)
+:InstallDotNet4Main
if exist %SystemRoot%\Temp\wou_net4_tried.txt goto SkipDotNet4Inst
echo. >%SystemRoot%\Temp\wou_net4_tried.txt
if "%OS_NAME%"=="w60" (
set DOTNET4_FILENAME=..\dotnet\NDP46-KB3045557-x86-x64-AllOS-ENU.exe
set DOTNET4LP_FILENAME=..\dotnet\NDP46-KB3045557-x86-x64-AllOS-%OS_LANG%.exe
) else (
- set DOTNET4_FILENAME=..\dotnet\NDP462-KB3151800-x86-x64-AllOS-ENU.exe
- set DOTNET4LP_FILENAME=..\dotnet\NDP462-KB3151800-x86-x64-AllOS-%OS_LANG%.exe
+ set DOTNET4_FILENAME=..\dotnet\NDP47-KB3186497-x86-x64-AllOS-ENU.exe
+ set DOTNET4LP_FILENAME=..\dotnet\NDP47-KB3186497-x86-x64-AllOS-%OS_LANG%.exe
)
if "%OS_SRV_CORE%"=="1" (
set DOTNET4_INSTOPTS=/q /norestart
) else (
set DOTNET4_INSTOPTS=/passive /norestart
)
if not exist %DOTNET4_FILENAME% (
- echo Warning: .NET Framework 4.6.x installation file ^(%DOTNET4_FILENAME%^) not found.
- echo %DATE% %TIME% - Warning: .NET Framework 4.6.x installation file ^(%DOTNET4_FILENAME%^) not found>>%UPDATE_LOGFILE%
+ echo Warning: .NET Framework 4 installation file ^(%DOTNET4_FILENAME%^) not found.
+ echo %DATE% %TIME% - Warning: .NET Framework 4 installation file ^(%DOTNET4_FILENAME%^) not found>>%UPDATE_LOGFILE%
goto SkipDotNet4Inst
)
-echo Installing .NET Framework 4.6.x...
+echo Installing .NET Framework 4...
call InstallOSUpdate.cmd %DOTNET4_FILENAME% %VERIFY_MODE% /errorsaswarnings %DOTNET4_INSTOPTS% /lcid 1033
if "%OS_LANG%" NEQ "enu" (
if exist %DOTNET4LP_FILENAME% (
- echo Installing .NET Framework 4.6.x Language Pack...
+ echo Installing .NET Framework 4 Language Pack...
for /F %%i in ('dir /B %DOTNET4LP_FILENAME%') do call InstallOSUpdate.cmd ..\dotnet\%%i %VERIFY_MODE% /errorsaswarnings %DOTNET4_INSTOPTS%
) else (
- echo Warning: .NET Framework 4.6.x Language Pack installation file ^(%DOTNET4LP_FILENAME%^) not found.
- echo %DATE% %TIME% - Warning: .NET Framework 4.6.x Language Pack installation file ^(%DOTNET4LP_FILENAME%^) not found>>%UPDATE_LOGFILE%
+ echo Warning: .NET Framework 4 Language Pack installation file ^(%DOTNET4LP_FILENAME%^) not found.
+ echo %DATE% %TIME% - Warning: .NET Framework 4 Language Pack installation file ^(%DOTNET4LP_FILENAME%^) not found>>%UPDATE_LOGFILE%
)
)
set RECALL_REQUIRED=1
set DOTNET4_FILENAME=
set DOTNET4LP_FILENAME=
set DOTNET4_INSTOPTS=
:SkipDotNet4Inst
...
:Cleanup
...
if exist %SystemRoot%\Temp\wou_net4_tried.txt del %SystemRoot%\Temp\wou_net4_tried.txt
+if exist %SystemRoot%\Temp\wou_net4pre_tried.txt del %SystemRoot%\Temp\wou_net4pre_tried.txt