diff --git a/3.5/sdk/windowsservercore-1803/Dockerfile b/3.5/sdk/windowsservercore-1803/Dockerfile
index cec7bf567..16306cee8 100644
--- a/3.5/sdk/windowsservercore-1803/Dockerfile
+++ b/3.5/sdk/windowsservercore-1803/Dockerfile
@@ -3,6 +3,19 @@
ARG REPO=mcr.microsoft.com/dotnet/framework/runtime
FROM $REPO:3.5-windowsservercore-1803
+# Install .NET 4.8 Fx
+RUN powershell -Command `
+ $ProgressPreference = 'SilentlyContinue'; `
+ Invoke-WebRequest -Uri "https://download.visualstudio.microsoft.com/download/pr/7afca223-55d2-470a-8edc-6a1739ae3252/abd170b4b0ec15ad0222a809b761a036/ndp48-x86-x64-allos-enu.exe" -OutFile dotnet-framework-installer.exe & `
+ .\dotnet-framework-installer.exe /q & `
+ del .\dotnet-framework-installer.exe & `
+ powershell Remove-Item -Force -Recurse ${Env:TEMP}\*
+
+# ngen .NET Fx
+RUN \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update & `
+ \Windows\Microsoft.NET\Framework\v4.0.30319\ngen update
+
+# Can't set SHELL prior to installing 4.8 runtime - PowerShell being loaded prevents GAC from getting updated without restart
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
# Install NuGet CLI
@@ -22,16 +35,21 @@ RUN Invoke-WebRequest -UseBasicParsing https://download.visualstudio.microsoft.c
-ArgumentList `
'--add', 'Microsoft.VisualStudio.Workload.MSBuildTools', `
'--add', 'Microsoft.VisualStudio.Workload.NetCoreBuildTools', `
- '--add', 'Microsoft.Net.Component.4.7.2.SDK', `
'--add', 'Microsoft.Component.ClickOnce.MSBuild', `
'--quiet', '--norestart', '--nocache' `
-NoNewWindow -Wait; `
Remove-Item -Force vs_buildtools.exe; `
Remove-Item -Force -Recurse \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\"; `
Remove-Item -Force -Recurse ${Env:TEMP}\*; `
- Remove-Item -Force -Recurse \"${Env:ProgramData}\Microsoft\VisualStudio\Packages\"; `
Remove-Item -Force -Recurse \"${Env:ProgramData}\Package Cache\"
+# Install .NET 4.8 SDK
+RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/sdk_tools48.zip -OutFile sdk_tools48.zip; `
+ Expand-Archive sdk_tools48.zip; `
+ Start-Process msiexec -ArgumentList '/i', 'sdk_tools48\sdk_tools48.msi', '/quiet', 'VSEXTUI=1' -NoNewWindow -Wait; `
+ Remove-Item -Force -Recurse sdk_tools48; `
+ Remove-Item -Force -Recurse ${Env:TEMP}\*
+
# Install web targets
RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/MSBuild.Microsoft.VisualStudio.Web.targets.2019.04.zip -OutFile MSBuild.Microsoft.VisualStudio.Web.targets.zip;`
Expand-Archive MSBuild.Microsoft.VisualStudio.Web.targets.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VisualStudio\v16.0\"; `
@@ -42,9 +60,9 @@ ENV ROSLYN_COMPILER_LOCATION "C:\Program Files (x86)\Microsoft Visual Studio\201
# ngen assemblies queued by VS installers - must be done in cmd shell to avoid access issues
SHELL ["cmd", "/S", "/C"]
RUN `
- # Workaround for issue with 32 bit assemblies from Microsoft.Net.Component.4.7.2.SDK being 64 bit ngen'ed
- \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\SecAnnotate.exe" `
- && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\WinMDExp.exe" `
+ # Workaround for issue with 32 bit assemblies from .NET Framework 4.8 SDK being 64 bit ngen'ed
+ \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\SecAnnotate.exe" `
+ && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\WinMDExp.exe" `
`
&& \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update `
`
@@ -61,11 +79,11 @@ RUN setx /M PATH $(${Env:PATH} `
+ \";${Env:ProgramFiles}\NuGet\" `
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\" `
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\" `
- + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\" `
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
# Install Targeting Packs
-RUN @('4.0', '4.5.2', '4.6.2', '4.7.2') `
+RUN @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8') `
| %{ `
Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip -OutFile referenceassemblies.zip; `
Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
diff --git a/3.5/sdk/windowsservercore-ltsc2016/Dockerfile b/3.5/sdk/windowsservercore-ltsc2016/Dockerfile
index 87608be4c..adee24991 100644
--- a/3.5/sdk/windowsservercore-ltsc2016/Dockerfile
+++ b/3.5/sdk/windowsservercore-ltsc2016/Dockerfile
@@ -3,8 +3,10 @@
ARG REPO=mcr.microsoft.com/dotnet/framework/runtime
FROM $REPO:3.5-windowsservercore-ltsc2016
-# Install .NET 4.7.2
-RUN powershell Invoke-WebRequest -Uri "https://download.microsoft.com/download/6/E/4/6E48E8AB-DC00-419E-9704-06DD46E5F81D/NDP472-KB4054530-x86-x64-AllOS-ENU.exe" -OutFile dotnet-framework-installer.exe & `
+# Install .NET 4.8 Fx
+RUN powershell -Command `
+ $ProgressPreference = 'SilentlyContinue'; `
+ Invoke-WebRequest -Uri "https://download.visualstudio.microsoft.com/download/pr/7afca223-55d2-470a-8edc-6a1739ae3252/abd170b4b0ec15ad0222a809b761a036/ndp48-x86-x64-allos-enu.exe" -OutFile dotnet-framework-installer.exe & `
.\dotnet-framework-installer.exe /q & `
del .\dotnet-framework-installer.exe & `
powershell Remove-Item -Force -Recurse ${Env:TEMP}\*
@@ -13,7 +15,7 @@ RUN powershell Invoke-WebRequest -Uri "https://download.microsoft.com/download/6
RUN \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update & `
\Windows\Microsoft.NET\Framework\v4.0.30319\ngen update
-# Can't set SHELL prior to installing 4.7.2 runtime - PowerShell being loaded prevents GAC from getting updated without restart
+# Can't set SHELL prior to installing 4.8 runtime - PowerShell being loaded prevents GAC from getting updated without restart
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
# Install NuGet CLI
@@ -33,16 +35,21 @@ RUN Invoke-WebRequest -UseBasicParsing https://download.visualstudio.microsoft.c
-ArgumentList `
'--add', 'Microsoft.VisualStudio.Workload.MSBuildTools', `
'--add', 'Microsoft.VisualStudio.Workload.NetCoreBuildTools', `
- '--add', 'Microsoft.Net.Component.4.7.2.SDK', `
'--add', 'Microsoft.Component.ClickOnce.MSBuild', `
'--quiet', '--norestart', '--nocache' `
-NoNewWindow -Wait; `
Remove-Item -Force vs_buildtools.exe; `
Remove-Item -Force -Recurse \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\"; `
Remove-Item -Force -Recurse ${Env:TEMP}\*; `
- Remove-Item -Force -Recurse \"${Env:ProgramData}\Microsoft\VisualStudio\Packages\"; `
Remove-Item -Force -Recurse \"${Env:ProgramData}\Package Cache\"
+# Install .NET 4.8 SDK
+RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/sdk_tools48.zip -OutFile sdk_tools48.zip; `
+ Expand-Archive sdk_tools48.zip; `
+ Start-Process msiexec -ArgumentList '/i', 'sdk_tools48\sdk_tools48.msi', '/quiet', 'VSEXTUI=1' -NoNewWindow -Wait; `
+ Remove-Item -Force -Recurse sdk_tools48; `
+ Remove-Item -Force -Recurse ${Env:TEMP}\*
+
# Install web targets
RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/MSBuild.Microsoft.VisualStudio.Web.targets.2019.04.zip -OutFile MSBuild.Microsoft.VisualStudio.Web.targets.zip;`
Expand-Archive MSBuild.Microsoft.VisualStudio.Web.targets.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VisualStudio\v16.0\"; `
@@ -53,9 +60,9 @@ ENV ROSLYN_COMPILER_LOCATION "C:\Program Files (x86)\Microsoft Visual Studio\201
# ngen assemblies queued by VS installers - must be done in cmd shell to avoid access issues
SHELL ["cmd", "/S", "/C"]
RUN `
- # Workaround for issue with 32 bit assemblies from Microsoft.Net.Component.4.7.2.SDK being 64 bit ngen'ed
- \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\SecAnnotate.exe" `
- && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\WinMDExp.exe" `
+ # Workaround for issue with 32 bit assemblies from .NET Framework 4.8 SDK being 64 bit ngen'ed
+ \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\SecAnnotate.exe" `
+ && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\WinMDExp.exe" `
`
&& \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update `
`
@@ -72,11 +79,11 @@ RUN setx /M PATH $(${Env:PATH} `
+ \";${Env:ProgramFiles}\NuGet\" `
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\" `
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\" `
- + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\" `
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
# Install Targeting Packs
-RUN @('4.0', '4.5.2', '4.6.2', '4.7.2') `
+RUN @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8') `
| %{ `
Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip -OutFile referenceassemblies.zip; `
Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
diff --git a/3.5/sdk/windowsservercore-ltsc2019/Dockerfile b/3.5/sdk/windowsservercore-ltsc2019/Dockerfile
index 23586d28d..cd387bb68 100644
--- a/3.5/sdk/windowsservercore-ltsc2019/Dockerfile
+++ b/3.5/sdk/windowsservercore-ltsc2019/Dockerfile
@@ -3,6 +3,19 @@
ARG REPO=mcr.microsoft.com/dotnet/framework/runtime
FROM $REPO:3.5-windowsservercore-ltsc2019
+# Install .NET 4.8 Fx
+RUN powershell -Command `
+ $ProgressPreference = 'SilentlyContinue'; `
+ Invoke-WebRequest -Uri "https://download.visualstudio.microsoft.com/download/pr/7afca223-55d2-470a-8edc-6a1739ae3252/abd170b4b0ec15ad0222a809b761a036/ndp48-x86-x64-allos-enu.exe" -OutFile dotnet-framework-installer.exe & `
+ .\dotnet-framework-installer.exe /q & `
+ del .\dotnet-framework-installer.exe & `
+ powershell Remove-Item -Force -Recurse ${Env:TEMP}\*
+
+# ngen .NET Fx
+RUN \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update & `
+ \Windows\Microsoft.NET\Framework\v4.0.30319\ngen update
+
+# Can't set SHELL prior to installing 4.8 runtime - PowerShell being loaded prevents GAC from getting updated without restart
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
# Install NuGet CLI
@@ -22,16 +35,21 @@ RUN Invoke-WebRequest -UseBasicParsing https://download.visualstudio.microsoft.c
-ArgumentList `
'--add', 'Microsoft.VisualStudio.Workload.MSBuildTools', `
'--add', 'Microsoft.VisualStudio.Workload.NetCoreBuildTools', `
- '--add', 'Microsoft.Net.Component.4.7.2.SDK', `
'--add', 'Microsoft.Component.ClickOnce.MSBuild', `
'--quiet', '--norestart', '--nocache' `
-NoNewWindow -Wait; `
Remove-Item -Force vs_buildtools.exe; `
Remove-Item -Force -Recurse \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\"; `
Remove-Item -Force -Recurse ${Env:TEMP}\*; `
- Remove-Item -Force -Recurse \"${Env:ProgramData}\Microsoft\VisualStudio\Packages\"; `
Remove-Item -Force -Recurse \"${Env:ProgramData}\Package Cache\"
+# Install .NET 4.8 SDK
+RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/sdk_tools48.zip -OutFile sdk_tools48.zip; `
+ Expand-Archive sdk_tools48.zip; `
+ Start-Process msiexec -ArgumentList '/i', 'sdk_tools48\sdk_tools48.msi', '/quiet', 'VSEXTUI=1' -NoNewWindow -Wait; `
+ Remove-Item -Force -Recurse sdk_tools48; `
+ Remove-Item -Force -Recurse ${Env:TEMP}\*
+
# Install web targets
RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/MSBuild.Microsoft.VisualStudio.Web.targets.2019.04.zip -OutFile MSBuild.Microsoft.VisualStudio.Web.targets.zip;`
Expand-Archive MSBuild.Microsoft.VisualStudio.Web.targets.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VisualStudio\v16.0\"; `
@@ -42,9 +60,9 @@ ENV ROSLYN_COMPILER_LOCATION "C:\Program Files (x86)\Microsoft Visual Studio\201
# ngen assemblies queued by VS installers - must be done in cmd shell to avoid access issues
SHELL ["cmd", "/S", "/C"]
RUN `
- # Workaround for issue with 32 bit assemblies from Microsoft.Net.Component.4.7.2.SDK being 64 bit ngen'ed
- \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\SecAnnotate.exe" `
- && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\WinMDExp.exe" `
+ # Workaround for issue with 32 bit assemblies from .NET Framework 4.8 SDK being 64 bit ngen'ed
+ \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\SecAnnotate.exe" `
+ && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\WinMDExp.exe" `
`
&& \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update `
`
@@ -61,11 +79,11 @@ RUN setx /M PATH $(${Env:PATH} `
+ \";${Env:ProgramFiles}\NuGet\" `
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\" `
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\" `
- + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\" `
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
# Install Targeting Packs
-RUN @('4.0', '4.5.2', '4.6.2', '4.7.2') `
+RUN @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8') `
| %{ `
Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip -OutFile referenceassemblies.zip; `
Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
diff --git a/4.8/runtime/windowsservercore-1803/Dockerfile b/4.8/runtime/windowsservercore-1803/Dockerfile
new file mode 100644
index 000000000..fa5a4e378
--- /dev/null
+++ b/4.8/runtime/windowsservercore-1803/Dockerfile
@@ -0,0 +1,16 @@
+# escape=`
+
+FROM mcr.microsoft.com/windows/servercore:1803
+
+# Install .NET 4.8
+RUN powershell -Command `
+ $ProgressPreference = 'SilentlyContinue'; `
+ Invoke-WebRequest -Uri "https://download.visualstudio.microsoft.com/download/pr/7afca223-55d2-470a-8edc-6a1739ae3252/abd170b4b0ec15ad0222a809b761a036/ndp48-x86-x64-allos-enu.exe" -OutFile dotnet-framework-installer.exe & `
+ .\dotnet-framework-installer.exe /q & `
+ del .\dotnet-framework-installer.exe & `
+ powershell Remove-Item -Force -Recurse ${Env:TEMP}\*
+
+# ngen .NET Fx
+ENV COMPLUS_NGenProtectedProcess_FeatureEnabled 0
+RUN \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update & `
+ \Windows\Microsoft.NET\Framework\v4.0.30319\ngen update
diff --git a/4.8/runtime/windowsservercore-ltsc2016/Dockerfile b/4.8/runtime/windowsservercore-ltsc2016/Dockerfile
new file mode 100644
index 000000000..941e509dd
--- /dev/null
+++ b/4.8/runtime/windowsservercore-ltsc2016/Dockerfile
@@ -0,0 +1,16 @@
+# escape=`
+
+FROM mcr.microsoft.com/windows/servercore:ltsc2016
+
+# Install .NET 4.8
+RUN powershell -Command `
+ $ProgressPreference = 'SilentlyContinue'; `
+ Invoke-WebRequest -Uri "https://download.visualstudio.microsoft.com/download/pr/7afca223-55d2-470a-8edc-6a1739ae3252/abd170b4b0ec15ad0222a809b761a036/ndp48-x86-x64-allos-enu.exe" -OutFile dotnet-framework-installer.exe & `
+ .\dotnet-framework-installer.exe /q & `
+ del .\dotnet-framework-installer.exe & `
+ powershell Remove-Item -Force -Recurse ${Env:TEMP}\*
+
+# ngen .NET Fx
+ENV COMPLUS_NGenProtectedProcess_FeatureEnabled 0
+RUN \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update & `
+ \Windows\Microsoft.NET\Framework\v4.0.30319\ngen update
diff --git a/4.8/runtime/windowsservercore-ltsc2019/Dockerfile b/4.8/runtime/windowsservercore-ltsc2019/Dockerfile
new file mode 100644
index 000000000..0a44efaad
--- /dev/null
+++ b/4.8/runtime/windowsservercore-ltsc2019/Dockerfile
@@ -0,0 +1,16 @@
+# escape=`
+
+FROM mcr.microsoft.com/windows/servercore:ltsc2019
+
+# Install .NET 4.8
+RUN powershell -Command `
+ $ProgressPreference = 'SilentlyContinue'; `
+ Invoke-WebRequest -Uri "https://download.visualstudio.microsoft.com/download/pr/7afca223-55d2-470a-8edc-6a1739ae3252/abd170b4b0ec15ad0222a809b761a036/ndp48-x86-x64-allos-enu.exe" -OutFile dotnet-framework-installer.exe & `
+ .\dotnet-framework-installer.exe /q & `
+ del .\dotnet-framework-installer.exe & `
+ powershell Remove-Item -Force -Recurse ${Env:TEMP}\*
+
+# ngen .NET Fx
+ENV COMPLUS_NGenProtectedProcess_FeatureEnabled 0
+RUN \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update & `
+ \Windows\Microsoft.NET\Framework\v4.0.30319\ngen update
diff --git a/4.8/sdk/windowsservercore-1803/Dockerfile b/4.8/sdk/windowsservercore-1803/Dockerfile
new file mode 100644
index 000000000..0e4f4ed03
--- /dev/null
+++ b/4.8/sdk/windowsservercore-1803/Dockerfile
@@ -0,0 +1,78 @@
+# escape=`
+
+ARG REPO=mcr.microsoft.com/dotnet/framework/runtime
+FROM $REPO:4.8-windowsservercore-1803
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+# Install NuGet CLI
+ENV NUGET_VERSION 4.4.1
+RUN New-Item -Type Directory $Env:ProgramFiles\NuGet; `
+ Invoke-WebRequest -UseBasicParsing https://dist.nuget.org/win-x86-commandline/v$Env:NUGET_VERSION/nuget.exe -OutFile $Env:ProgramFiles\NuGet\nuget.exe
+
+# Install VS Test Agent
+RUN Invoke-WebRequest -UseBasicParsing https://download.visualstudio.microsoft.com/download/pr/446c5efe-9162-41a1-b380-704c82d13afa/8c6c6f404ed99e477007f16a336f99a6/vs_testagent.exe -OutFile vs_TestAgent.exe; `
+ Start-Process vs_TestAgent.exe -ArgumentList '--quiet', '--norestart', '--nocache' -NoNewWindow -Wait; `
+ Remove-Item -Force vs_TestAgent.exe; `
+ # Install VS Build Tools
+ Invoke-WebRequest -UseBasicParsing https://download.visualstudio.microsoft.com/download/pr/df649173-11e9-4af2-8eb7-0eb02ba8958a/cadb5bdac41e55bb8f6a6b7c45273370/vs_buildtools.exe -OutFile vs_BuildTools.exe; `
+ # Installer won't detect DOTNET_SKIP_FIRST_TIME_EXPERIENCE if ENV is used, must use setx /M
+ setx /M DOTNET_SKIP_FIRST_TIME_EXPERIENCE 1; `
+ Start-Process vs_BuildTools.exe `
+ -ArgumentList `
+ '--add', 'Microsoft.VisualStudio.Workload.MSBuildTools', `
+ '--add', 'Microsoft.VisualStudio.Workload.NetCoreBuildTools', `
+ '--add', 'Microsoft.Component.ClickOnce.MSBuild', `
+ '--quiet', '--norestart', '--nocache' `
+ -NoNewWindow -Wait; `
+ Remove-Item -Force vs_buildtools.exe; `
+ Remove-Item -Force -Recurse \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\"; `
+ Remove-Item -Force -Recurse ${Env:TEMP}\*; `
+ Remove-Item -Force -Recurse \"${Env:ProgramData}\Package Cache\"
+
+# Install .NET 4.8 SDK
+RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/sdk_tools48.zip -OutFile sdk_tools48.zip; `
+ Expand-Archive sdk_tools48.zip; `
+ Start-Process msiexec -ArgumentList '/i', 'sdk_tools48\sdk_tools48.msi', '/quiet', 'VSEXTUI=1' -NoNewWindow -Wait; `
+ Remove-Item -Force -Recurse sdk_tools48; `
+ Remove-Item -Force -Recurse ${Env:TEMP}\*
+
+# Install web targets
+RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/MSBuild.Microsoft.VisualStudio.Web.targets.2019.04.zip -OutFile MSBuild.Microsoft.VisualStudio.Web.targets.zip;`
+ Expand-Archive MSBuild.Microsoft.VisualStudio.Web.targets.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VisualStudio\v16.0\"; `
+ Remove-Item -Force MSBuild.Microsoft.VisualStudio.Web.targets.zip
+
+ENV ROSLYN_COMPILER_LOCATION "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\Roslyn"
+
+# ngen assemblies queued by VS installers - must be done in cmd shell to avoid access issues
+SHELL ["cmd", "/S", "/C"]
+RUN `
+ # Workaround for issue with 32 bit assemblies from .NET Framework 4.8 SDK being 64 bit ngen'ed
+ \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\SecAnnotate.exe" `
+ && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\WinMDExp.exe" `
+ `
+ && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update `
+ `
+ # Workaround VS installer/ngen issues
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\VSWebLauncher.exe" `
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\Editor\Microsoft.VisualStudio.Diff.CommandLineSwitch.pkgdef" `
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\Editor\Microsoft.VisualStudio.Diff.pkgdef" `
+ `
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen update
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+# Set PATH in one layer to keep image size down.
+RUN setx /M PATH $(${Env:PATH} `
+ + \";${Env:ProgramFiles}\NuGet\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
+
+# Install Targeting Packs
+RUN @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8') `
+ | %{ `
+ Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip -OutFile referenceassemblies.zip; `
+ Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
+ Remove-Item -Force referenceassemblies.zip; `
+ }
diff --git a/4.8/sdk/windowsservercore-ltsc2016/Dockerfile b/4.8/sdk/windowsservercore-ltsc2016/Dockerfile
new file mode 100644
index 000000000..fc75f4691
--- /dev/null
+++ b/4.8/sdk/windowsservercore-ltsc2016/Dockerfile
@@ -0,0 +1,78 @@
+# escape=`
+
+ARG REPO=mcr.microsoft.com/dotnet/framework/runtime
+FROM $REPO:4.8-windowsservercore-ltsc2016
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+# Install NuGet CLI
+ENV NUGET_VERSION 4.4.1
+RUN New-Item -Type Directory $Env:ProgramFiles\NuGet; `
+ Invoke-WebRequest -UseBasicParsing https://dist.nuget.org/win-x86-commandline/v$Env:NUGET_VERSION/nuget.exe -OutFile $Env:ProgramFiles\NuGet\nuget.exe
+
+# Install VS Test Agent
+RUN Invoke-WebRequest -UseBasicParsing https://download.visualstudio.microsoft.com/download/pr/446c5efe-9162-41a1-b380-704c82d13afa/8c6c6f404ed99e477007f16a336f99a6/vs_testagent.exe -OutFile vs_TestAgent.exe; `
+ Start-Process vs_TestAgent.exe -ArgumentList '--quiet', '--norestart', '--nocache' -NoNewWindow -Wait; `
+ Remove-Item -Force vs_TestAgent.exe; `
+ # Install VS Build Tools
+ Invoke-WebRequest -UseBasicParsing https://download.visualstudio.microsoft.com/download/pr/df649173-11e9-4af2-8eb7-0eb02ba8958a/cadb5bdac41e55bb8f6a6b7c45273370/vs_buildtools.exe -OutFile vs_BuildTools.exe; `
+ # Installer won't detect DOTNET_SKIP_FIRST_TIME_EXPERIENCE if ENV is used, must use setx /M
+ setx /M DOTNET_SKIP_FIRST_TIME_EXPERIENCE 1; `
+ Start-Process vs_BuildTools.exe `
+ -ArgumentList `
+ '--add', 'Microsoft.VisualStudio.Workload.MSBuildTools', `
+ '--add', 'Microsoft.VisualStudio.Workload.NetCoreBuildTools', `
+ '--add', 'Microsoft.Component.ClickOnce.MSBuild', `
+ '--quiet', '--norestart', '--nocache' `
+ -NoNewWindow -Wait; `
+ Remove-Item -Force vs_buildtools.exe; `
+ Remove-Item -Force -Recurse \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\"; `
+ Remove-Item -Force -Recurse ${Env:TEMP}\*; `
+ Remove-Item -Force -Recurse \"${Env:ProgramData}\Package Cache\"
+
+# Install .NET 4.8 SDK
+RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/sdk_tools48.zip -OutFile sdk_tools48.zip; `
+ Expand-Archive sdk_tools48.zip; `
+ Start-Process msiexec -ArgumentList '/i', 'sdk_tools48\sdk_tools48.msi', '/quiet', 'VSEXTUI=1' -NoNewWindow -Wait; `
+ Remove-Item -Force -Recurse sdk_tools48; `
+ Remove-Item -Force -Recurse ${Env:TEMP}\*
+
+# Install web targets
+RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/MSBuild.Microsoft.VisualStudio.Web.targets.2019.04.zip -OutFile MSBuild.Microsoft.VisualStudio.Web.targets.zip;`
+ Expand-Archive MSBuild.Microsoft.VisualStudio.Web.targets.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VisualStudio\v16.0\"; `
+ Remove-Item -Force MSBuild.Microsoft.VisualStudio.Web.targets.zip
+
+ENV ROSLYN_COMPILER_LOCATION "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\Roslyn"
+
+# ngen assemblies queued by VS installers - must be done in cmd shell to avoid access issues
+SHELL ["cmd", "/S", "/C"]
+RUN `
+ # Workaround for issue with 32 bit assemblies from .NET Framework 4.8 SDK being 64 bit ngen'ed
+ \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\SecAnnotate.exe" `
+ && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\WinMDExp.exe" `
+ `
+ && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update `
+ `
+ # Workaround VS installer/ngen issues
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\VSWebLauncher.exe" `
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\Editor\Microsoft.VisualStudio.Diff.CommandLineSwitch.pkgdef" `
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\Editor\Microsoft.VisualStudio.Diff.pkgdef" `
+ `
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen update
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+# Set PATH in one layer to keep image size down.
+RUN setx /M PATH $(${Env:PATH} `
+ + \";${Env:ProgramFiles}\NuGet\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
+
+# Install Targeting Packs
+RUN @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8') `
+ | %{ `
+ Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip -OutFile referenceassemblies.zip; `
+ Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
+ Remove-Item -Force referenceassemblies.zip; `
+ }
diff --git a/4.8/sdk/windowsservercore-ltsc2019/Dockerfile b/4.8/sdk/windowsservercore-ltsc2019/Dockerfile
new file mode 100644
index 000000000..43c013114
--- /dev/null
+++ b/4.8/sdk/windowsservercore-ltsc2019/Dockerfile
@@ -0,0 +1,78 @@
+# escape=`
+
+ARG REPO=mcr.microsoft.com/dotnet/framework/runtime
+FROM $REPO:4.8-windowsservercore-ltsc2019
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+# Install NuGet CLI
+ENV NUGET_VERSION 4.4.1
+RUN New-Item -Type Directory $Env:ProgramFiles\NuGet; `
+ Invoke-WebRequest -UseBasicParsing https://dist.nuget.org/win-x86-commandline/v$Env:NUGET_VERSION/nuget.exe -OutFile $Env:ProgramFiles\NuGet\nuget.exe
+
+# Install VS Test Agent
+RUN Invoke-WebRequest -UseBasicParsing https://download.visualstudio.microsoft.com/download/pr/446c5efe-9162-41a1-b380-704c82d13afa/8c6c6f404ed99e477007f16a336f99a6/vs_testagent.exe -OutFile vs_TestAgent.exe; `
+ Start-Process vs_TestAgent.exe -ArgumentList '--quiet', '--norestart', '--nocache' -NoNewWindow -Wait; `
+ Remove-Item -Force vs_TestAgent.exe; `
+ # Install VS Build Tools
+ Invoke-WebRequest -UseBasicParsing https://download.visualstudio.microsoft.com/download/pr/df649173-11e9-4af2-8eb7-0eb02ba8958a/cadb5bdac41e55bb8f6a6b7c45273370/vs_buildtools.exe -OutFile vs_BuildTools.exe; `
+ # Installer won't detect DOTNET_SKIP_FIRST_TIME_EXPERIENCE if ENV is used, must use setx /M
+ setx /M DOTNET_SKIP_FIRST_TIME_EXPERIENCE 1; `
+ Start-Process vs_BuildTools.exe `
+ -ArgumentList `
+ '--add', 'Microsoft.VisualStudio.Workload.MSBuildTools', `
+ '--add', 'Microsoft.VisualStudio.Workload.NetCoreBuildTools', `
+ '--add', 'Microsoft.Component.ClickOnce.MSBuild', `
+ '--quiet', '--norestart', '--nocache' `
+ -NoNewWindow -Wait; `
+ Remove-Item -Force vs_buildtools.exe; `
+ Remove-Item -Force -Recurse \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\"; `
+ Remove-Item -Force -Recurse ${Env:TEMP}\*; `
+ Remove-Item -Force -Recurse \"${Env:ProgramData}\Package Cache\"
+
+# Install .NET 4.8 SDK
+RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/sdk_tools48.zip -OutFile sdk_tools48.zip; `
+ Expand-Archive sdk_tools48.zip; `
+ Start-Process msiexec -ArgumentList '/i', 'sdk_tools48\sdk_tools48.msi', '/quiet', 'VSEXTUI=1' -NoNewWindow -Wait; `
+ Remove-Item -Force -Recurse sdk_tools48; `
+ Remove-Item -Force -Recurse ${Env:TEMP}\*
+
+# Install web targets
+RUN Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/dockerassets/MSBuild.Microsoft.VisualStudio.Web.targets.2019.04.zip -OutFile MSBuild.Microsoft.VisualStudio.Web.targets.zip;`
+ Expand-Archive MSBuild.Microsoft.VisualStudio.Web.targets.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VisualStudio\v16.0\"; `
+ Remove-Item -Force MSBuild.Microsoft.VisualStudio.Web.targets.zip
+
+ENV ROSLYN_COMPILER_LOCATION "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\Roslyn"
+
+# ngen assemblies queued by VS installers - must be done in cmd shell to avoid access issues
+SHELL ["cmd", "/S", "/C"]
+RUN `
+ # Workaround for issue with 32 bit assemblies from .NET Framework 4.8 SDK being 64 bit ngen'ed
+ \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\SecAnnotate.exe" `
+ && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\WinMDExp.exe" `
+ `
+ && \Windows\Microsoft.NET\Framework64\v4.0.30319\ngen update `
+ `
+ # Workaround VS installer/ngen issues
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\VSWebLauncher.exe" `
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\Editor\Microsoft.VisualStudio.Diff.CommandLineSwitch.pkgdef" `
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen uninstall "C:\Program Files (x86)\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\Editor\Microsoft.VisualStudio.Diff.pkgdef" `
+ `
+ && \Windows\Microsoft.NET\Framework\v4.0.30319\ngen update
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+# Set PATH in one layer to keep image size down.
+RUN setx /M PATH $(${Env:PATH} `
+ + \";${Env:ProgramFiles}\NuGet\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\" `
+ + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
+
+# Install Targeting Packs
+RUN @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8') `
+ | %{ `
+ Invoke-WebRequest -UseBasicParsing https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip -OutFile referenceassemblies.zip; `
+ Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
+ Remove-Item -Force referenceassemblies.zip; `
+ }
diff --git a/README.runtime.md b/README.runtime.md
index 80aa15378..ddd57324d 100644
--- a/README.runtime.md
+++ b/README.runtime.md
@@ -1,7 +1,7 @@
# Featured Tags
-* `4.7.2`
- * `docker pull mcr.microsoft.com/dotnet/framework/runtime:4.7.2`
+* `4.8`
+ * `docker pull mcr.microsoft.com/dotnet/framework/runtime:4.8`
* `3.5`
* `docker pull mcr.microsoft.com/dotnet/framework/runtime:3.5`
@@ -44,17 +44,20 @@ docker run --rm mcr.microsoft.com/dotnet/framework/samples:dotnetapp
## Windows Server 2019 amd64 tags
-- [`4.7.2-20190409-windowsservercore-ltsc2019`, `4.7.2-windowsservercore-ltsc2019`, `4.7.2`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/runtime/windowsservercore-ltsc2019/Dockerfile)
+- [`4.8-20190418-windowsservercore-ltsc2019`, `4.8-windowsservercore-ltsc2019`, `4.8`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.8/runtime/windowsservercore-ltsc2019/Dockerfile)
+- [`4.7.2-20190409-windowsservercore-ltsc2019`, `4.7.2-windowsservercore-ltsc2019`, `4.7.2` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/runtime/windowsservercore-ltsc2019/Dockerfile)
- [`3.5-20190409-windowsservercore-ltsc2019`, `3.5-windowsservercore-ltsc2019`, `3.5` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/3.5/runtime/windowsservercore-ltsc2019/Dockerfile)
## Windows Server, version 1803 amd64 tags
-- [`4.7.2-20190409-windowsservercore-1803`, `4.7.2-windowsservercore-1803`, `4.7.2`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/runtime/windowsservercore-1803/Dockerfile)
+- [`4.8-20190418-windowsservercore-1803`, `4.8-windowsservercore-1803`, `4.8`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.8/runtime/windowsservercore-1803/Dockerfile)
+- [`4.7.2-20190409-windowsservercore-1803`, `4.7.2-windowsservercore-1803`, `4.7.2` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/runtime/windowsservercore-1803/Dockerfile)
- [`3.5-20190409-windowsservercore-1803`, `3.5-windowsservercore-1803`, `3.5` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/3.5/runtime/windowsservercore-1803/Dockerfile)
## Windows Server 2016 amd64 tags
-- [`4.7.2-20190409-windowsservercore-ltsc2016`, `4.7.2-windowsservercore-ltsc2016`, `4.7.2`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/runtime/windowsservercore-ltsc2016/Dockerfile)
+- [`4.8-20190418-windowsservercore-ltsc2016`, `4.8-windowsservercore-ltsc2016`, `4.8`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.8/runtime/windowsservercore-ltsc2016/Dockerfile)
+- [`4.7.2-20190409-windowsservercore-ltsc2016`, `4.7.2-windowsservercore-ltsc2016`, `4.7.2` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/runtime/windowsservercore-ltsc2016/Dockerfile)
- [`4.7.1-20190409-windowsservercore-ltsc2016`, `4.7.1-windowsservercore-ltsc2016`, `4.7.1` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.1/runtime/windowsservercore-ltsc2016/Dockerfile)
- [`4.7-20190409-windowsservercore-ltsc2016`, `4.7-windowsservercore-ltsc2016`, `4.7` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7/runtime/windowsservercore-ltsc2016/Dockerfile)
- [`4.6.2-20190409-windowsservercore-ltsc2016`, `4.6.2-windowsservercore-ltsc2016`, `4.6.2` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.6.2/runtime/windowsservercore-ltsc2016/Dockerfile)
diff --git a/README.sdk.md b/README.sdk.md
index 33302c52d..22ec3c1e7 100644
--- a/README.sdk.md
+++ b/README.sdk.md
@@ -1,7 +1,7 @@
# Featured Tags
-* `4.7.2`
- * `docker pull mcr.microsoft.com/dotnet/framework/sdk:4.7.2`
+* `4.8`
+ * `docker pull mcr.microsoft.com/dotnet/framework/sdk:4.8`
* `3.5`
* `docker pull mcr.microsoft.com/dotnet/framework/sdk:3.5`
@@ -50,19 +50,22 @@ The [.NET Framework Docker samples](https://github.com/microsoft/dotnet-framewor
## Windows Server 2019 amd64 tags
-- [`4.7.2-20190409-windowsservercore-ltsc2019`, `4.7.2-windowsservercore-ltsc2019`, `4.7.2`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/sdk/windowsservercore-ltsc2019/Dockerfile)
-- [`3.5-20190409-windowsservercore-ltsc2019`, `3.5-windowsservercore-ltsc2019`, `3.5` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/3.5/sdk/windowsservercore-ltsc2019/Dockerfile)
+- [`4.8-20190418-windowsservercore-ltsc2019`, `4.8-windowsservercore-ltsc2019`, `4.8`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.8/sdk/windowsservercore-ltsc2019/Dockerfile)
+- [`4.7.2-20190409-windowsservercore-ltsc2019`, `4.7.2-windowsservercore-ltsc2019`, `4.7.2` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/sdk/windowsservercore-ltsc2019/Dockerfile)
+- [`3.5-20190418-windowsservercore-ltsc2019`, `3.5-windowsservercore-ltsc2019`, `3.5` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/3.5/sdk/windowsservercore-ltsc2019/Dockerfile)
## Windows Server, version 1803 amd64 tags
-- [`4.7.2-20190409-windowsservercore-1803`, `4.7.2-windowsservercore-1803`, `4.7.2`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/sdk/windowsservercore-1803/Dockerfile)
-- [`3.5-20190409-windowsservercore-1803`, `3.5-windowsservercore-1803`, `3.5` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/3.5/sdk/windowsservercore-1803/Dockerfile)
+- [`4.8-20190418-windowsservercore-1803`, `4.8-windowsservercore-1803`, `4.8`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.8/sdk/windowsservercore-1803/Dockerfile)
+- [`4.7.2-20190409-windowsservercore-1803`, `4.7.2-windowsservercore-1803`, `4.7.2` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/sdk/windowsservercore-1803/Dockerfile)
+- [`3.5-20190418-windowsservercore-1803`, `3.5-windowsservercore-1803`, `3.5` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/3.5/sdk/windowsservercore-1803/Dockerfile)
## Windows Server 2016 amd64 tags
-- [`4.7.2-20190409-windowsservercore-ltsc2016`, `4.7.2-windowsservercore-ltsc2016`, `4.7.2`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/sdk/windowsservercore-ltsc2016/Dockerfile)
+- [`4.8-20190418-windowsservercore-ltsc2016`, `4.8-windowsservercore-ltsc2016`, `4.8`, `latest` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.8/sdk/windowsservercore-ltsc2016/Dockerfile)
+- [`4.7.2-20190409-windowsservercore-ltsc2016`, `4.7.2-windowsservercore-ltsc2016`, `4.7.2` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.2/sdk/windowsservercore-ltsc2016/Dockerfile)
- [`4.7.1-20190409-windowsservercore-ltsc2016`, `4.7.1-windowsservercore-ltsc2016`, `4.7.1` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/4.7.1/sdk/windowsservercore-ltsc2016/Dockerfile)
-- [`3.5-20190409-windowsservercore-ltsc2016`, `3.5-windowsservercore-ltsc2016`, `3.5` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/3.5/sdk/windowsservercore-ltsc2016/Dockerfile)
+- [`3.5-20190418-windowsservercore-ltsc2016`, `3.5-windowsservercore-ltsc2016`, `3.5` (*Dockerfile*)](https://github.com/Microsoft/dotnet-framework-docker/blob/master/3.5/sdk/windowsservercore-ltsc2016/Dockerfile)
For more information about these images and their history, please see [(`microsoft/dotnet-framework-docker`)](https://github.com/Microsoft/dotnet-framework-docker). These images are updated via [pull requests to the `Microsoft/dotnet-framework-docker` GitHub repo](https://github.com/Microsoft/dotnet-framework-docker/pulls).
diff --git a/manifest.json b/manifest.json
index e259a92f6..046896e59 100644
--- a/manifest.json
+++ b/manifest.json
@@ -3,7 +3,8 @@
"registry": "mcr.microsoft.com",
"variables": {
"RuntimeReleaseDateStamp": "20190409",
- "SdkReleaseDateStamp": "20190409"
+ "SdkReleaseDateStamp": "20190409",
+ "48ReleaseDateStamp": "20190418"
},
"repos": [
{
@@ -13,9 +14,43 @@
"images": [
{
"sharedTags": {
- "4.7.2": {},
+ "4.8": {},
"latest": {}
},
+ "platforms": [
+ {
+ "dockerfile": "4.8/runtime/windowsservercore-1803",
+ "os": "windows",
+ "osVersion": "windowsservercore-1803",
+ "tags": {
+ "4.8-$(48ReleaseDateStamp)-windowsservercore-1803": {},
+ "4.8-windowsservercore-1803": {}
+ }
+ },
+ {
+ "dockerfile": "4.8/runtime/windowsservercore-ltsc2016",
+ "os": "windows",
+ "osVersion": "windowsservercore-ltsc2016",
+ "tags": {
+ "4.8-$(48ReleaseDateStamp)-windowsservercore-ltsc2016": {},
+ "4.8-windowsservercore-ltsc2016": {}
+ }
+ },
+ {
+ "dockerfile": "4.8/runtime/windowsservercore-ltsc2019",
+ "os": "windows",
+ "osVersion": "windowsservercore-ltsc2019",
+ "tags": {
+ "4.8-$(48ReleaseDateStamp)-windowsservercore-ltsc2019": {},
+ "4.8-windowsservercore-ltsc2019": {}
+ }
+ }
+ ]
+ },
+ {
+ "sharedTags": {
+ "4.7.2": {}
+ },
"platforms": [
{
"dockerfile": "4.7.2/runtime/windowsservercore-ltsc2016",
@@ -137,9 +172,52 @@
"images": [
{
"sharedTags": {
- "4.7.2": {},
+ "4.8": {},
"latest": {}
},
+ "platforms": [
+ {
+ "buildArgs": {
+ "REPO": "$(Repo:runtime)"
+ },
+ "dockerfile": "4.8/sdk/windowsservercore-1803",
+ "os": "windows",
+ "osVersion": "windowsservercore-1803",
+ "tags": {
+ "4.8-$(48ReleaseDateStamp)-windowsservercore-1803": {},
+ "4.8-windowsservercore-1803": {}
+ }
+ },
+ {
+ "buildArgs": {
+ "REPO": "$(Repo:runtime)"
+ },
+ "dockerfile": "4.8/sdk/windowsservercore-ltsc2016",
+ "os": "windows",
+ "osVersion": "windowsservercore-ltsc2016",
+ "tags": {
+ "4.8-$(48ReleaseDateStamp)-windowsservercore-ltsc2016": {},
+ "4.8-windowsservercore-ltsc2016": {}
+ }
+ },
+ {
+ "buildArgs": {
+ "REPO": "$(Repo:runtime)"
+ },
+ "dockerfile": "4.8/sdk/windowsservercore-ltsc2019",
+ "os": "windows",
+ "osVersion": "windowsservercore-ltsc2019",
+ "tags": {
+ "4.8-$(48ReleaseDateStamp)-windowsservercore-ltsc2019": {},
+ "4.8-windowsservercore-ltsc2019": {}
+ }
+ }
+ ]
+ },
+ {
+ "sharedTags": {
+ "4.7.2": {}
+ },
"platforms": [
{
"buildArgs": {
@@ -211,7 +289,7 @@
"os": "windows",
"osVersion": "windowsservercore-ltsc2016",
"tags": {
- "3.5-$(SdkReleaseDateStamp)-windowsservercore-ltsc2016": {},
+ "3.5-$(48ReleaseDateStamp)-windowsservercore-ltsc2016": {},
"3.5-windowsservercore-ltsc2016": {}
}
},
@@ -223,7 +301,7 @@
"os": "windows",
"osVersion": "windowsservercore-1803",
"tags": {
- "3.5-$(SdkReleaseDateStamp)-windowsservercore-1803": {},
+ "3.5-$(48ReleaseDateStamp)-windowsservercore-1803": {},
"3.5-windowsservercore-1803": {}
}
},
@@ -235,7 +313,7 @@
"os": "windows",
"osVersion": "windowsservercore-ltsc2019",
"tags": {
- "3.5-$(SdkReleaseDateStamp)-windowsservercore-ltsc2019": {},
+ "3.5-$(48ReleaseDateStamp)-windowsservercore-ltsc2019": {},
"3.5-windowsservercore-ltsc2019": {}
}
}
diff --git a/scripts/documentation-templates/runtime-tags.md b/scripts/documentation-templates/runtime-tags.md
index d97259898..dc5916f1b 100644
--- a/scripts/documentation-templates/runtime-tags.md
+++ b/scripts/documentation-templates/runtime-tags.md
@@ -2,16 +2,19 @@
## Windows Server 2019 amd64 tags
+$(TagDoc:4.8-windowsservercore-ltsc2019)
$(TagDoc:4.7.2-windowsservercore-ltsc2019)
$(TagDoc:3.5-windowsservercore-ltsc2019)
## Windows Server, version 1803 amd64 tags
+$(TagDoc:4.8-windowsservercore-1803)
$(TagDoc:4.7.2-windowsservercore-1803)
$(TagDoc:3.5-windowsservercore-1803)
## Windows Server 2016 amd64 tags
+$(TagDoc:4.8-windowsservercore-ltsc2016)
$(TagDoc:4.7.2-windowsservercore-ltsc2016)
$(TagDoc:4.7.1-windowsservercore-ltsc2016)
$(TagDoc:4.7-windowsservercore-ltsc2016)
diff --git a/scripts/documentation-templates/sdk-tags.md b/scripts/documentation-templates/sdk-tags.md
index 7e7917b7f..8cf1de53d 100644
--- a/scripts/documentation-templates/sdk-tags.md
+++ b/scripts/documentation-templates/sdk-tags.md
@@ -2,16 +2,19 @@
## Windows Server 2019 amd64 tags
+$(TagDoc:4.8-windowsservercore-ltsc2019)
$(TagDoc:4.7.2-windowsservercore-ltsc2019)
$(TagDoc:3.5-windowsservercore-ltsc2019)
## Windows Server, version 1803 amd64 tags
+$(TagDoc:4.8-windowsservercore-1803)
$(TagDoc:4.7.2-windowsservercore-1803)
$(TagDoc:3.5-windowsservercore-1803)
## Windows Server 2016 amd64 tags
+$(TagDoc:4.8-windowsservercore-ltsc2016)
$(TagDoc:4.7.2-windowsservercore-ltsc2016)
$(TagDoc:4.7.1-windowsservercore-ltsc2016)
$(TagDoc:3.5-windowsservercore-ltsc2016)
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/ImageTests.cs b/tests/Microsoft.DotNet.Framework.Docker.Tests/ImageTests.cs
index 3c4e2ad6f..7cbf028d6 100644
--- a/tests/Microsoft.DotNet.Framework.Docker.Tests/ImageTests.cs
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/ImageTests.cs
@@ -32,13 +32,20 @@ public class ImageTests
new ImageDescriptor { RuntimeVersion = "3.5", BuildVersion = "3.5", OsVariant = WSC_LTSC2019 },
new ImageDescriptor { RuntimeVersion = "4.6.2", BuildVersion = "4.7.1", OsVariant = WSC_LTSC2016 },
new ImageDescriptor { RuntimeVersion = "4.6.2", BuildVersion = "4.7.2", OsVariant = WSC_LTSC2016 },
+ new ImageDescriptor { RuntimeVersion = "4.6.2", BuildVersion = "4.8", OsVariant = WSC_LTSC2016 },
new ImageDescriptor { RuntimeVersion = "4.7", BuildVersion = "4.7.1", OsVariant = WSC_LTSC2016 },
new ImageDescriptor { RuntimeVersion = "4.7", BuildVersion = "4.7.2", OsVariant = WSC_LTSC2016 },
+ new ImageDescriptor { RuntimeVersion = "4.7", BuildVersion = "4.8", OsVariant = WSC_LTSC2016 },
new ImageDescriptor { RuntimeVersion = "4.7.1", BuildVersion = "4.7.1", OsVariant = WSC_LTSC2016 },
new ImageDescriptor { RuntimeVersion = "4.7.1", BuildVersion = "4.7.2", OsVariant = WSC_LTSC2016 },
+ new ImageDescriptor { RuntimeVersion = "4.7.1", BuildVersion = "4.8", OsVariant = WSC_LTSC2016 },
new ImageDescriptor { RuntimeVersion = "4.7.2", BuildVersion = "4.7.2", OsVariant = WSC_LTSC2016 },
new ImageDescriptor { RuntimeVersion = "4.7.2", BuildVersion = "4.7.2", OsVariant = WSC_1803 },
new ImageDescriptor { RuntimeVersion = "4.7.2", BuildVersion = "4.7.2", OsVariant = WSC_LTSC2019 },
+ new ImageDescriptor { RuntimeVersion = "4.7.2", BuildVersion = "4.8", OsVariant = WSC_LTSC2019 },
+ new ImageDescriptor { RuntimeVersion = "4.8", BuildVersion = "4.8", OsVariant = WSC_1803 },
+ new ImageDescriptor { RuntimeVersion = "4.8", BuildVersion = "4.8", OsVariant = WSC_LTSC2016 },
+ new ImageDescriptor { RuntimeVersion = "4.8", BuildVersion = "4.8", OsVariant = WSC_LTSC2019 },
};
private DockerHelper DockerHelper { get; set; }
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/App.config b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/App.config
new file mode 100644
index 000000000..a86c64659
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/Dockerfile b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/Dockerfile
new file mode 100644
index 000000000..b6d618971
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/Dockerfile
@@ -0,0 +1,16 @@
+ARG BASE_BUILD_IMAGE
+ARG BASE_RUNTIME_IMAGE
+
+
+FROM $BASE_BUILD_IMAGE as builder
+WORKDIR /app
+COPY . ./
+RUN dotnet restore
+RUN dotnet build -c Release
+
+
+FROM $BASE_RUNTIME_IMAGE
+WORKDIR /app
+COPY --from=builder /app/bin/Release/net48 .
+
+ENTRYPOINT ["dotnetapp-4.8.exe"]
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/Program.cs b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/Program.cs
new file mode 100644
index 000000000..7f9e0a9d1
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/Program.cs
@@ -0,0 +1,13 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+
+public class Program
+{
+ public static void Main(string[] args)
+ {
+ Console.WriteLine("Hello Docker World from .NET 4.8!");
+ }
+}
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/dotnetapp-4.8.csproj b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/dotnetapp-4.8.csproj
new file mode 100644
index 000000000..0dc116f7a
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/dotnetapp-4.8/dotnetapp-4.8.csproj
@@ -0,0 +1,8 @@
+
+
+
+ Exe
+ net48
+
+
+
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/.nuget/NuGet.config b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/.nuget/NuGet.config
new file mode 100644
index 000000000..00e302a4d
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/.nuget/NuGet.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Dockerfile b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Dockerfile
new file mode 100644
index 000000000..a0b069ca5
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Dockerfile
@@ -0,0 +1,10 @@
+ARG BASE_BUILD_IMAGE
+
+FROM $BASE_BUILD_IMAGE
+
+WORKDIR /app
+COPY . ./
+
+RUN nuget restore SimpleWebApplication.csproj -SolutionDirectory -NoCache
+
+RUN msbuild SimpleWebApplication.csproj /p:Configuration=Release
\ No newline at end of file
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Properties/AssemblyInfo.cs b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..3cd17b52b
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SimpleWebApplication")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("SimpleWebApplication")]
+[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e02160b5-4466-4003-ba3e-c5c62e576c07")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/SimpleWebApplication.csproj b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/SimpleWebApplication.csproj
new file mode 100644
index 000000000..77665ad62
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/SimpleWebApplication.csproj
@@ -0,0 +1,124 @@
+
+
+
+
+
+ Debug
+ AnyCPU
+
+
+ 2.0
+ {E02160B5-4466-4003-BA3E-C5C62E576C07}
+ {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ Library
+ Properties
+ SimpleWebApplication
+ SimpleWebApplication
+ v4.8
+ true
+
+
+
+
+
+
+
+
+
+
+ true
+ full
+ false
+ bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ true
+ pdbonly
+ true
+ bin\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .\-NoCache\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.8\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll
+
+
+
+
+
+
+
+
+
+
+
+ Web.config
+
+
+ Web.config
+
+
+
+ 10.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+
+
+
+
+ True
+ True
+ 57072
+ /
+ http://localhost:57072/
+ False
+ False
+
+
+ False
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Web.Debug.config b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Web.Debug.config
new file mode 100644
index 000000000..fae9cfefa
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Web.Debug.config
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Web.Release.config b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Web.Release.config
new file mode 100644
index 000000000..da6e960b8
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Web.Release.config
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Web.config b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Web.config
new file mode 100644
index 000000000..832084a03
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/Web.config
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/packages.config b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/packages.config
new file mode 100644
index 000000000..021a580b3
--- /dev/null
+++ b/tests/Microsoft.DotNet.Framework.Docker.Tests/projects/webapp-4.8/packages.config
@@ -0,0 +1,5 @@
+
+
+
+
+