Skip to content

Commit edb6a95

Browse files
committed
Update Visual Studio Build Tools to 18.0
1 parent 51342f3 commit edb6a95

File tree

7 files changed

+42
-68
lines changed

7 files changed

+42
-68
lines changed

eng/dockerfile-templates/sdk/Dockerfile

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,7 @@ RUN mkdir "%ProgramFiles%\NuGet\latest" `
4141
&& mklink "%ProgramFiles%\NuGet\latest\nuget.exe" "%ProgramFiles%\NuGet\nuget.exe"
4242

4343
# Install VS components
44-
RUN `
45-
# Install VS Test Agent
46-
curl -fSLo vs_TestAgent.exe {{VARIABLES["vs|testAgentUrl"]}} `
47-
&& start /w vs_TestAgent --quiet --norestart --nocache --wait --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\TestAgent" `
48-
&& powershell -Command "if ($err = dir $Env:TEMP -Filter dd_setup_*_errors.log | where Length -gt 0 | Get-Content) { throw $err }" `
49-
&& del vs_TestAgent.exe `
50-
`
51-
{{InsertTemplate("Dockerfile.install-vs-buildtools", [], " ")}}
44+
RUN {{InsertTemplate("Dockerfile.install-vs-buildtools", [], " ")}}
5245
`
5346
# Trigger dotnet first run experience by running arbitrary cmd
5447
&& "%ProgramFiles%\dotnet\dotnet" help `
@@ -65,14 +58,12 @@ RUN `
6558
# Cleanup
6659
&& (for /D %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do rmdir /S /Q "%i") `
6760
&& (for %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do if not "%~nxi" == "vswhere.exe" del "%~i") `
68-
&& powershell Remove-Item -Force -Recurse "%TEMP%\*" `
69-
&& rmdir /S /Q "%ProgramData%\Package Cache"
61+
&& powershell Remove-Item -Force -Recurse "%TEMP%\*"
7062

7163
# Set PATH in one layer to keep image size down.
7264
RUN powershell setx /M PATH $(${Env:PATH} `
7365
+ \";${Env:ProgramFiles}\NuGet\" `
74-
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\" `
75-
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64\" `
66+
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\18\BuildTools\MSBuild\Current\Bin\amd64\" `
7667
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX {{sdkVersion}} Tools\" `
7768
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
7869

eng/dockerfile-templates/sdk/Dockerfile.install-vs-buildtools

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,31 @@
33
_ ARGS:
44
usePowerShell: whether to use PowerShell to download and remove files ^
55

6-
set sdkVersion to when(PRODUCT_VERSION = "4.8.1", "4.8.1", "4.8")
6+
set sdkVersion to when(PRODUCT_VERSION = "4.8.1", "4.8.1", "4.8") ^
7+
set is2016 to OS_VERSION_NUMBER = "ltsc2016" ^
78

8-
}}# Install VS Build Tools{{
9-
if ARGS.usePowerShell:
10-
&& powershell -Command `
9+
_ VS 2026 does not support Windows Server LTSC 2016
10+
https://learn.microsoft.com/en-us/visualstudio/releases/2026/vs-system-requirements ^
11+
set vsBuildToolsUrl to
12+
when(is2016,
13+
VARIABLES["vs|ltsc2016|buildToolsUrl"],
14+
VARIABLES["vs|buildToolsUrl"]) ^
15+
set vsPath to
16+
when(is2016,
17+
"%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools",
18+
"%ProgramFiles(x86)%\Microsoft Visual Studio\18\BuildTools")
19+
20+
}}{{
21+
if ARGS.usePowerShell:powershell -Command `
1122
$ProgressPreference = 'SilentlyContinue'; `
1223
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; `
1324
Invoke-WebRequest `
1425
-UseBasicParsing `
15-
-Uri {{VARIABLES["vs|buildToolsUrl"]}} `
26+
-Uri {{vsBuildToolsUrl}} `
1627
-OutFile vs_BuildTools.exe `^
17-
else:
18-
&& curl -fSLo vs_BuildTools.exe {{VARIABLES["vs|buildToolsUrl"]}} `}}
28+
else:curl -fSLo vs_BuildTools.exe {{vsBuildToolsUrl}} `}}
1929
&& start /w vs_BuildTools @^ `
20-
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" @^ `
30+
--installPath "{{vsPath}}" @^ `
2131
--add Microsoft.Component.ClickOnce.MSBuild @^ `
2232
--add Microsoft.Net.Component.{{sdkVersion}}.SDK @^ `
2333
--add Microsoft.NetCore.Component.Runtime.8.0 @^ `
@@ -29,4 +39,4 @@ else:
2939
--add Microsoft.VisualStudio.Workload.MSBuildTools @^ `
3040
--quiet --norestart --nocache --wait `
3141
&& powershell -Command "if ($err = dir $Env:TEMP -Filter dd_setup_*_errors.log | where Length -gt 0 | Get-Content) { throw $err }" `
32-
&& del vs_BuildTools.exe `
42+
&& del vs_BuildTools.exe `

eng/dockerfile-templates/sdk/Dockerfile.ltsc2016

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,14 @@ RUN `
5959
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; `
6060
Invoke-WebRequest `
6161
-UseBasicParsing `
62-
-Uri {{VARIABLES["vs|testAgentUrl"]}} `
62+
-Uri {{VARIABLES["vs|ltsc2016|testAgentUrl"]}} `
6363
-OutFile vs_TestAgent.exe `
6464
&& start /w vs_TestAgent --quiet --norestart --nocache --wait --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\TestAgent" `
6565
&& powershell -Command "if ($err = dir $Env:TEMP -Filter dd_setup_*_errors.log | where Length -gt 0 | Get-Content) { throw $err }" `
6666
&& del vs_TestAgent.exe `
6767
`
68-
{{InsertTemplate("Dockerfile.install-vs-buildtools", [ "usePowerShell": "true" ], " ")}}
68+
# Install VS Build Tools
69+
&& {{InsertTemplate("Dockerfile.install-vs-buildtools", [ "usePowerShell": "true" ], " ")}}
6970
`
7071
# Trigger dotnet first run experience by running arbitrary cmd
7172
&& "%ProgramFiles%\dotnet\dotnet" help `

manifest.versions.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@
1313
"referenceassemblies|version": "1.0.3",
1414
"servicemonitor|version": "2.0.1.10",
1515
"servicemonitor|url": "https://github.com/microsoft/IIS.ServiceMonitor/releases/download/v$(servicemonitor|version)/ServiceMonitor.exe",
16-
"vs|version": "17.14",
17-
"vs|testAgentUrl": "https://aka.ms/vs/17/release/vs_TestAgent.exe",
18-
"vs|buildToolsUrl": "https://aka.ms/vs/17/release/vs_BuildTools.exe",
16+
"vs|version": "18.0",
17+
"vs|buildToolsUrl": "https://aka.ms/vs/stable/vs_BuildTools.exe",
18+
"vs|ltsc2016|version": "17.14",
19+
"vs|ltsc2016|testAgentUrl": "https://aka.ms/vs/17/release/vs_TestAgent.exe",
20+
"vs|ltsc2016|buildToolsUrl": "https://aka.ms/vs/17/release/vs_BuildTools.exe",
1921
"4.8|url": "https://download.visualstudio.microsoft.com/download/pr/2d6bb6b2-226a-4baa-bdec-798822606ff1/8494001c276a4b96804cde7829c04d7f/ndp48-x86-x64-allos-enu.exe",
2022
"4.8.1|url": "https://download.visualstudio.microsoft.com/download/pr/6f083c7e-bd40-44d4-9e3f-ffba71ec8b09/3951fd5af6098f2c7e8ff5c331a0679c/ndp481-x86-x64-allos-enu.exe"
2123
}

src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,9 @@ RUN mkdir "%ProgramFiles%\NuGet\latest" `
1919
&& mklink "%ProgramFiles%\NuGet\latest\nuget.exe" "%ProgramFiles%\NuGet\nuget.exe"
2020

2121
# Install VS components
22-
RUN `
23-
# Install VS Test Agent
24-
curl -fSLo vs_TestAgent.exe https://aka.ms/vs/17/release/vs_TestAgent.exe `
25-
&& start /w vs_TestAgent --quiet --norestart --nocache --wait --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\TestAgent" `
26-
&& powershell -Command "if ($err = dir $Env:TEMP -Filter dd_setup_*_errors.log | where Length -gt 0 | Get-Content) { throw $err }" `
27-
&& del vs_TestAgent.exe `
28-
`
29-
# Install VS Build Tools
30-
&& curl -fSLo vs_BuildTools.exe https://aka.ms/vs/17/release/vs_BuildTools.exe `
22+
RUN curl -fSLo vs_BuildTools.exe https://aka.ms/vs/stable/vs_BuildTools.exe `
3123
&& start /w vs_BuildTools ^ `
32-
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ^ `
24+
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\18\BuildTools" ^ `
3325
--add Microsoft.Component.ClickOnce.MSBuild ^ `
3426
--add Microsoft.Net.Component.4.8.1.SDK ^ `
3527
--add Microsoft.NetCore.Component.Runtime.8.0 ^ `
@@ -56,14 +48,12 @@ RUN `
5648
# Cleanup
5749
&& (for /D %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do rmdir /S /Q "%i") `
5850
&& (for %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do if not "%~nxi" == "vswhere.exe" del "%~i") `
59-
&& powershell Remove-Item -Force -Recurse "%TEMP%\*" `
60-
&& rmdir /S /Q "%ProgramData%\Package Cache"
51+
&& powershell Remove-Item -Force -Recurse "%TEMP%\*"
6152

6253
# Set PATH in one layer to keep image size down.
6354
RUN powershell setx /M PATH $(${Env:PATH} `
6455
+ \";${Env:ProgramFiles}\NuGet\" `
65-
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\" `
66-
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64\" `
56+
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\18\BuildTools\MSBuild\Current\Bin\amd64\" `
6757
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools\" `
6858
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
6959

src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,9 @@ RUN mkdir "%ProgramFiles%\NuGet\latest" `
1919
&& mklink "%ProgramFiles%\NuGet\latest\nuget.exe" "%ProgramFiles%\NuGet\nuget.exe"
2020

2121
# Install VS components
22-
RUN `
23-
# Install VS Test Agent
24-
curl -fSLo vs_TestAgent.exe https://aka.ms/vs/17/release/vs_TestAgent.exe `
25-
&& start /w vs_TestAgent --quiet --norestart --nocache --wait --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\TestAgent" `
26-
&& powershell -Command "if ($err = dir $Env:TEMP -Filter dd_setup_*_errors.log | where Length -gt 0 | Get-Content) { throw $err }" `
27-
&& del vs_TestAgent.exe `
28-
`
29-
# Install VS Build Tools
30-
&& curl -fSLo vs_BuildTools.exe https://aka.ms/vs/17/release/vs_BuildTools.exe `
22+
RUN curl -fSLo vs_BuildTools.exe https://aka.ms/vs/stable/vs_BuildTools.exe `
3123
&& start /w vs_BuildTools ^ `
32-
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ^ `
24+
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\18\BuildTools" ^ `
3325
--add Microsoft.Component.ClickOnce.MSBuild ^ `
3426
--add Microsoft.Net.Component.4.8.1.SDK ^ `
3527
--add Microsoft.NetCore.Component.Runtime.8.0 ^ `
@@ -56,14 +48,12 @@ RUN `
5648
# Cleanup
5749
&& (for /D %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do rmdir /S /Q "%i") `
5850
&& (for %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do if not "%~nxi" == "vswhere.exe" del "%~i") `
59-
&& powershell Remove-Item -Force -Recurse "%TEMP%\*" `
60-
&& rmdir /S /Q "%ProgramData%\Package Cache"
51+
&& powershell Remove-Item -Force -Recurse "%TEMP%\*"
6152

6253
# Set PATH in one layer to keep image size down.
6354
RUN powershell setx /M PATH $(${Env:PATH} `
6455
+ \";${Env:ProgramFiles}\NuGet\" `
65-
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\" `
66-
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64\" `
56+
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\18\BuildTools\MSBuild\Current\Bin\amd64\" `
6757
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools\" `
6858
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
6959

src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,9 @@ RUN mkdir "%ProgramFiles%\NuGet\latest" `
1717
&& mklink "%ProgramFiles%\NuGet\latest\nuget.exe" "%ProgramFiles%\NuGet\nuget.exe"
1818

1919
# Install VS components
20-
RUN `
21-
# Install VS Test Agent
22-
curl -fSLo vs_TestAgent.exe https://aka.ms/vs/17/release/vs_TestAgent.exe `
23-
&& start /w vs_TestAgent --quiet --norestart --nocache --wait --installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\TestAgent" `
24-
&& powershell -Command "if ($err = dir $Env:TEMP -Filter dd_setup_*_errors.log | where Length -gt 0 | Get-Content) { throw $err }" `
25-
&& del vs_TestAgent.exe `
26-
`
27-
# Install VS Build Tools
28-
&& curl -fSLo vs_BuildTools.exe https://aka.ms/vs/17/release/vs_BuildTools.exe `
20+
RUN curl -fSLo vs_BuildTools.exe https://aka.ms/vs/stable/vs_BuildTools.exe `
2921
&& start /w vs_BuildTools ^ `
30-
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ^ `
22+
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\18\BuildTools" ^ `
3123
--add Microsoft.Component.ClickOnce.MSBuild ^ `
3224
--add Microsoft.Net.Component.4.8.SDK ^ `
3325
--add Microsoft.NetCore.Component.Runtime.8.0 ^ `
@@ -55,14 +47,12 @@ RUN `
5547
# Cleanup
5648
&& (for /D %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do rmdir /S /Q "%i") `
5749
&& (for %i in ("%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\*") do if not "%~nxi" == "vswhere.exe" del "%~i") `
58-
&& powershell Remove-Item -Force -Recurse "%TEMP%\*" `
59-
&& rmdir /S /Q "%ProgramData%\Package Cache"
50+
&& powershell Remove-Item -Force -Recurse "%TEMP%\*"
6051

6152
# Set PATH in one layer to keep image size down.
6253
RUN powershell setx /M PATH $(${Env:PATH} `
6354
+ \";${Env:ProgramFiles}\NuGet\" `
64-
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\" `
65-
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64\" `
55+
+ \";${Env:ProgramFiles(x86)}\Microsoft Visual Studio\18\BuildTools\MSBuild\Current\Bin\amd64\" `
6656
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\" `
6757
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
6858

0 commit comments

Comments
 (0)