[windows] Add Windows Server 2025 with Visual Studio 2026 (#13635)

This commit is contained in:
Shamil Mubarakshin
2026-02-06 10:59:14 +01:00
committed by GitHub
parent c218bde724
commit 71f0157880
17 changed files with 1155 additions and 29 deletions
+1
View File
@@ -46,6 +46,7 @@ body:
- label: macOS 26 Arm64 - label: macOS 26 Arm64
- label: Windows Server 2022 - label: Windows Server 2022
- label: Windows Server 2025 - label: Windows Server 2025
- label: Windows Server 2025 with Visual Studio 2026
- type: textarea - type: textarea
attributes: attributes:
label: Mitigation ways label: Mitigation ways
+1
View File
@@ -29,6 +29,7 @@ body:
- label: macOS 26 Arm64 - label: macOS 26 Arm64
- label: Windows Server 2022 - label: Windows Server 2022
- label: Windows Server 2025 - label: Windows Server 2025
- label: Windows Server 2025 with Visual Studio 2026
- type: textarea - type: textarea
attributes: attributes:
label: Image version and build link label: Image version and build link
+1
View File
@@ -67,6 +67,7 @@ body:
- label: macOS 26 Arm64 - label: macOS 26 Arm64
- label: Windows Server 2022 - label: Windows Server 2022
- label: Windows Server 2025 - label: Windows Server 2025
- label: Windows Server 2025 with Visual Studio 2026
- type: textarea - type: textarea
attributes: attributes:
label: Can this tool be installed during the build? label: Can this tool be installed during the build?
+20
View File
@@ -0,0 +1,20 @@
name: Trigger Windows25 with VS 2026 CI
run-name: Windows2025 with VS 2026 - ${{ github.event.pull_request.title }}
on:
pull_request_target:
types: labeled
paths:
- 'images/windows/**'
defaults:
run:
shell: pwsh
jobs:
Windows_2025_vs_2026:
if: github.event.label.name == 'CI windows-all' || github.event.label.name == 'CI windows-2025-vs2026'
uses: ./.github/workflows/trigger-ubuntu-win-build.yml
with:
image_type: 'windows2025-vs2026'
secrets: inherit
+2
View File
@@ -28,6 +28,7 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
| macOS 15 Arm64<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fmacos-15-arm64.json) | arm64 | `macos-latest`, `macos-15`, or `macos-15-xlarge` | [macOS-15-arm64] | | macOS 15 Arm64<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fmacos-15-arm64.json) | arm64 | `macos-latest`, `macos-15`, or `macos-15-xlarge` | [macOS-15-arm64] |
| macOS 14<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fmacos-14.json) | x64 | `macos-14-large`| [macOS-14] | | macOS 14<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fmacos-14.json) | x64 | `macos-14-large`| [macOS-14] |
| macOS 14 Arm64<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fmacos-14-arm64.json) | arm64 | `macos-14` or `macos-14-xlarge`| [macOS-14-arm64] | | macOS 14 Arm64<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fmacos-14-arm64.json) | arm64 | `macos-14` or `macos-14-xlarge`| [macOS-14-arm64] |
| Windows Server 2025 with Visual Studio 2026 ![beta](https://img.shields.io/badge/beta-yellow) | x64 | `windows-2025-vs2026` | [windows-2025-vs2026] |
| Windows Server 2025<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fwin25.json) | x64 | `windows-latest` or `windows-2025` | [windows-2025] | | Windows Server 2025<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fwin25.json) | x64 | `windows-latest` or `windows-2025` | [windows-2025] |
| Windows Server 2022<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fwin22.json) | x64 | `windows-2022` | [windows-2022] | | Windows Server 2022<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fwin22.json) | x64 | `windows-2022` | [windows-2022] |
@@ -41,6 +42,7 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
[ubuntu-22.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md [ubuntu-22.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md
[ubuntu-slim]: https://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md [ubuntu-slim]: https://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md
[windows-2025]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md [windows-2025]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md
[windows-2025-vs2026]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-VS2026-Readme.md
[windows-2022]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md [windows-2022]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md
[macOS-14]: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md [macOS-14]: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md
[macOS-14-arm64]: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md [macOS-14-arm64]: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md
+12 -7
View File
@@ -1,10 +1,11 @@
$ErrorActionPreference = 'Stop' $ErrorActionPreference = 'Stop'
enum ImageType { enum ImageType {
Windows2022 = 1 Windows2022 = 1
Windows2025 = 2 Windows2025 = 2
Ubuntu2204 = 3 Windows2025_vs2026 = 3
Ubuntu2404 = 4 Ubuntu2204 = 4
Ubuntu2404 = 5
} }
Function Get-PackerTemplate { Function Get-PackerTemplate {
@@ -25,6 +26,10 @@ Function Get-PackerTemplate {
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "build.windows-2025.pkr.hcl" $relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "build.windows-2025.pkr.hcl"
$imageOS = "win25" $imageOS = "win25"
} }
([ImageType]::Windows2025_vs2026) {
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "build.windows-2025-vs2026.pkr.hcl"
$imageOS = "win25-vs2026"
}
([ImageType]::Ubuntu2204) { ([ImageType]::Ubuntu2204) {
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "build.ubuntu-22_04.pkr.hcl" $relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "build.ubuntu-22_04.pkr.hcl"
$imageOS = "ubuntu22" $imageOS = "ubuntu22"
@@ -83,7 +88,7 @@ Function GenerateResourcesAndImage {
.PARAMETER ResourceGroupName .PARAMETER ResourceGroupName
The name of the resource group to store the resulting artifact. Resource group must already exist. The name of the resource group to store the resulting artifact. Resource group must already exist.
.PARAMETER ImageType .PARAMETER ImageType
The type of image to generate. Valid values are: Windows2022, Windows2025, Ubuntu2204, Ubuntu2404. The type of image to generate. Valid values are: Windows2022, Windows2025, Windows2025_vs2026, Ubuntu2204, Ubuntu2404.
.PARAMETER ManagedImageName .PARAMETER ManagedImageName
The name of the managed image to create. The default is "Runner-Image-{{ImageType}}". The name of the managed image to create. The default is "Runner-Image-{{ImageType}}".
.PARAMETER AzureLocation .PARAMETER AzureLocation
@@ -210,7 +215,7 @@ Function GenerateResourcesAndImage {
Write-Host "Validating packer template..." Write-Host "Validating packer template..."
& $PackerBinary validate ` & $PackerBinary validate `
"-only=$($PackerTemplate.BuildName)*" ` "-only=$($PackerTemplate.BuildName).*" `
"-var=client_id=fake" ` "-var=client_id=fake" `
"-var=client_secret=fake" ` "-var=client_secret=fake" `
"-var=subscription_id=$($SubscriptionId)" ` "-var=subscription_id=$($SubscriptionId)" `
@@ -280,7 +285,7 @@ Function GenerateResourcesAndImage {
Write-Debug "Tenant id: $TenantId." Write-Debug "Tenant id: $TenantId."
& $PackerBinary build -on-error="$($OnError)" ` & $PackerBinary build -on-error="$($OnError)" `
-only "$($PackerTemplate.BuildName)*" ` -only "$($PackerTemplate.BuildName).*" `
-var "client_id=$($ServicePrincipalAppId)" ` -var "client_id=$($ServicePrincipalAppId)" `
-var "client_secret=$($ServicePrincipalPassword)" ` -var "client_secret=$($ServicePrincipalPassword)" `
-var "subscription_id=$($SubscriptionId)" ` -var "subscription_id=$($SubscriptionId)" `
+490
View File
@@ -0,0 +1,490 @@
| Announcements |
|-|
| [[Windows/Ubuntu] Docker Server and Client will be updated to version 29.1.*, Docker Compose will be updated to version 2.40.3 on February 9th, 2026](https://github.com/actions/runner-images/issues/13474) |
***
# Windows Server 2025
- OS Version: 10.0.26100 Build 32230
- Image Version: 20260203.4.1
## Windows features
- Windows Subsystem for Linux (WSLv1): Enabled
- Windows Subsystem for Linux (Default, WSLv2): 2.6.3.0
## Installed Software
### Language and Runtime
- Bash 5.2.37(1)-release
- Go 1.24.12
- Julia 1.12.0
- Kotlin 2.3.0
- LLVM 20.1.8
- Node 22.22.0
- Perl 5.42.0
- PHP 8.5.2
- Python 3.12.10
- Ruby 3.3.10
### Package Management
- Chocolatey 2.6.0
- Composer 2.9.5
- Helm 4.1.0
- Miniconda 25.11.1 (pre-installed on the image but not added to PATH)
- NPM 10.9.4
- NuGet 7.0.1.1
- pip 26.0 (python 3.12)
- Pipx 1.8.0
- RubyGems 3.5.22
- Vcpkg (build from commit cc73782a88)
- Yarn 1.22.22
#### Environment variables
| Name | Value |
| ----------------------- | ------------ |
| VCPKG_INSTALLATION_ROOT | C:\vcpkg |
| CONDA | C:\Miniconda |
### Project Management
- Ant 1.10.15
- Gradle 9.3
- Maven 3.9.12
- sbt 1.12.1
### Tools
- 7zip 25.01
- aria2 1.37.0
- azcopy 10.31.1
- Bazel 9.0.0
- Bazelisk 1.28.1
- Bicep 0.40.2
- Cabal 3.16.1.0
- CMake 4.2.3
- CodeQL Action Bundle 2.24.0
- Docker 27.5.1
- Docker Compose v2 2.32.2
- Docker-wincred 0.9.5
- ghc 9.14.1
- Git 2.53.0.windows.1
- Git LFS 3.7.1
- ImageMagick 7.1.2-13
- InnoSetup 6.7.0
- jq 1.8.1
- Kind 0.31.0
- Kubectl 1.35.0
- gcc 15.2.0
- gdb 16.3
- GNU Binutils 2.45
- Newman 6.2.2
- OpenSSL 3.6.1
- Packer 1.14.2
- Pulumi 3.218.0
- R 4.5.2
- Service Fabric SDK 10.1.2493.9590
- Stack 3.9.1
- Swig 4.3.1
- VSWhere 3.1.7
- WinAppDriver 1.2.2009.02003
- WiX Toolset 3.14.1.8722
- yamllint 1.38.0
- zstd 1.5.7
- Ninja 1.13.2
### CLI Tools
- AWS CLI 2.33.12
- AWS SAM CLI 1.153.1
- AWS Session Manager CLI 1.2.764.0
- Azure CLI 2.83.0
- Azure DevOps CLI extension 1.0.2
- GitHub CLI 2.86.0
### Rust Tools
- Cargo 1.93.0
- Rust 1.93.0
- Rustdoc 1.93.0
- Rustup 1.28.2
#### Packages
- Clippy 0.1.93
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 144.0.7559.110
- Chrome Driver 144.0.7559.109
- Microsoft Edge 144.0.3719.104
- Microsoft Edge Driver 144.0.3719.104
- Mozilla Firefox 147.0.2
- Gecko Driver 0.36.0
- IE Driver 4.14.0.0
- Selenium server 4.40.0
#### Environment variables
| Name | Value |
| ----------------- | ---------------------------------- |
| CHROMEWEBDRIVER | C:\SeleniumWebDrivers\ChromeDriver |
| EDGEWEBDRIVER | C:\SeleniumWebDrivers\EdgeDriver |
| GECKOWEBDRIVER | C:\SeleniumWebDrivers\GeckoDriver |
| SELENIUM_JAR_PATH | C:\selenium\selenium-server.jar |
### Java
| Version | Environment Variable |
| -------------------- | -------------------- |
| 8.0.472+8 | JAVA_HOME_8_X64 |
| 11.0.29+7 | JAVA_HOME_11_X64 |
| 17.0.17+10 (default) | JAVA_HOME_17_X64 |
| 21.0.9+10.0 | JAVA_HOME_21_X64 |
| 25.0.2+10.0 | JAVA_HOME_25_X64 |
### Shells
| Name | Target |
| ------------- | --------------------------------- |
| gitbash.exe | C:\Program Files\Git\bin\bash.exe |
| msys2bash.cmd | C:\msys64\usr\bin\bash.exe |
| wslbash.exe | C:\Windows\System32\bash.exe |
### MSYS2
- Pacman 6.1.0
#### Notes
```
Location: C:\msys64
Note: MSYS2 is pre-installed on image but not added to PATH.
```
### Cached Tools
#### Go
- 1.22.12
- 1.23.12
- 1.24.12
- 1.25.6
#### Node.js
- 20.20.0
- 22.22.0
- 24.13.0
#### Python
- 3.10.11
- 3.11.9
- 3.12.10
- 3.13.11
- 3.14.2
#### PyPy
- 3.9.19 [PyPy 7.3.16]
- 3.10.16 [PyPy 7.3.19]
#### Ruby
- 3.2.10
- 3.3.10
- 3.4.8
- 4.0.1
### Databases
#### PostgreSQL
| Property | Value |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| ServiceName | postgresql-x64-17 |
| Version | 17.7 |
| ServiceStatus | Stopped |
| ServiceStartType | Disabled |
| EnvironmentVariables | PGBIN=C:\Program Files\PostgreSQL\17\bin <br> PGDATA=C:\PostgreSQL\17\data <br> PGROOT=C:\Program Files\PostgreSQL\17 |
| Path | C:\Program Files\PostgreSQL\17 |
| UserName | postgres |
| Password | root |
#### MongoDB
| Version | ServiceName | ServiceStatus | ServiceStartType |
| -------- | ----------- | ------------- | ---------------- |
| 7.0.29.0 | MongoDB | Stopped | Disabled |
### Database tools
- Azure CosmosDb Emulator 2.14.25.0
- DacFx 170.2.70.1
- MySQL 8.0.45.0
- SQL OLEDB Driver 18 18.7.5.0
- SQL OLEDB Driver 19 19.4.1.0
- SQLPS 1.0
- MongoDB Shell (mongosh) 2.6.0
### Web Servers
| Name | Version | ConfigFile | ServiceName | ServiceStatus | ListenPort |
| ------ | ------- | ------------------------------------- | ----------- | ------------- | ---------- |
| Apache | 2.4.55 | C:\tools\Apache24\conf\httpd.conf | Apache | Stopped | 80 |
| Nginx | 1.29.4 | C:\tools\nginx-1.29.4\conf\nginx.conf | nginx | Stopped | 80 |
### Visual Studio Enterprise 2026
| Name | Version | Path |
| ----------------------------- | -------------- | ------------------------------------------------------ |
| Visual Studio Enterprise 2026 | 18.2.11415.280 | C:\Program Files\Microsoft Visual Studio\18\Enterprise |
#### Workloads, components and extensions
| Package | Version |
| ------------------------------------------------------------------------- | --------------- |
| android | 36.1.2.0 |
| Component.Android.NDK.R27C | 18.0.11101.84 |
| Component.Android.SDK.MAUI | 18.0.11101.84 |
| Component.Linux.CMake | 18.0.11101.84 |
| Component.Linux.RemoteFileExplorer | 18.0.11101.84 |
| Component.MDD.Android | 18.1.11302.112 |
| Component.MDD.Linux | 18.0.11101.78 |
| Component.Microsoft.VisualStudio.RazorExtension | 18.0.11101.84 |
| Component.Microsoft.VisualStudio.Tools.Applications.amd64 | 17.0.36522.0 |
| Component.Microsoft.VisualStudio.Web.AzureFunctions | 18.0.11101.84 |
| Component.Microsoft.Web.LibraryManager | 18.0.11101.84 |
| Component.Microsoft.Windows.DriverKit | 10.0.26100.12 |
| Component.OpenJDK | 18.0.11101.84 |
| Component.UnityEngine.x64 | 18.0.11101.78 |
| Component.Unreal.Debugger | 18.2.11407.205 |
| Component.Unreal.Ide | 18.0.11101.78 |
| Component.VisualStudio.GitHub.Copilot | 18.2.11414.340 |
| Component.VSInstallerProjects2022 | 3.0.0 |
| Component.WixToolset.VisualStudioExtension.Dev17 | 1.0.0.22 |
| Component.WixToolset.VisualStudioExtension.Schemas3 | 1.0.0.22 |
| ComponentGroup.Microsoft.NET.AppModernization | 18.0.11217.1 |
| ios | 26.1.10502 |
| maccatalyst | 26.1.10502 |
| maui.blazor | 10.0.1.7412 |
| maui.core | 10.0.1.7412 |
| maui.windows | 10.0.1.7412 |
| Microsoft.Component.Azure.DataLake.Tools | 18.1.11302.112 |
| Microsoft.Component.ClickOnce | 18.0.11101.78 |
| Microsoft.Component.CodeAnalysis.SDK | 18.0.11101.84 |
| Microsoft.Component.MSBuild | 18.0.11101.78 |
| Microsoft.Component.NetFX.Native | 18.0.11101.78 |
| Microsoft.Component.PythonTools | 18.0.11101.78 |
| Microsoft.Component.PythonTools.Web | 18.0.11101.78 |
| Microsoft.Component.VC.Runtime.UCRTSDK | 18.0.11101.78 |
| Microsoft.ComponentGroup.Blend | 18.0.11101.84 |
| Microsoft.ComponentGroup.ClickOnce.Publish | 18.0.11101.84 |
| Microsoft.Net.Component.4.6.2.TargetingPack | 18.0.11101.78 |
| Microsoft.Net.Component.4.6.TargetingPack | 18.0.11101.84 |
| Microsoft.Net.Component.4.7.1.TargetingPack | 18.0.11101.78 |
| Microsoft.Net.Component.4.7.2.TargetingPack | 18.0.11101.84 |
| Microsoft.Net.Component.4.7.TargetingPack | 18.0.11101.84 |
| Microsoft.Net.Component.4.8.1.SDK | 18.0.11101.78 |
| Microsoft.Net.Component.4.8.1.TargetingPack | 18.0.11101.78 |
| Microsoft.Net.Component.4.8.SDK | 18.0.11101.84 |
| Microsoft.Net.Component.4.8.TargetingPack | 18.0.11101.84 |
| Microsoft.Net.ComponentGroup.4.8.DeveloperTools | 18.0.11101.84 |
| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 18.0.11101.84 |
| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 18.0.11101.84 |
| microsoft.net.runtime.android | 10.1.225.61305 |
| microsoft.net.runtime.android.aot | 10.1.225.61305 |
| microsoft.net.runtime.android.aot.net9 | 10.1.225.61305 |
| microsoft.net.runtime.android.net9 | 10.1.225.61305 |
| microsoft.net.runtime.ios | 10.1.225.61305 |
| microsoft.net.runtime.ios.net9 | 10.1.225.61305 |
| microsoft.net.runtime.maccatalyst | 10.1.225.61305 |
| microsoft.net.runtime.maccatalyst.net9 | 10.1.225.61305 |
| microsoft.net.runtime.mono.tooling | 10.1.225.61305 |
| microsoft.net.runtime.mono.tooling.net9 | 10.1.225.61305 |
| microsoft.net.sdk.emscripten | 10.1.225.61305 |
| Microsoft.NetCore.Component.DevelopmentTools | 18.0.11101.78 |
| Microsoft.NetCore.Component.Runtime.10.0 | 18.2.11407.205 |
| Microsoft.NetCore.Component.Runtime.8.0 | 18.2.11407.205 |
| Microsoft.NetCore.Component.SDK | 18.2.11407.205 |
| Microsoft.NetCore.Component.Web | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.AppInsights.Tools | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.AspNet | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.AspNet45 | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.ClassDesigner | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.CodeMap | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.CoreEditor | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.CppBuildInsights | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Debugger.JustInTime | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.DiagnosticTools | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.DockerTools | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.DotNetModelBuilder | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.DslTools | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.EntityFramework | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.FSharp | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.FSharp.Desktop | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.FSharp.WebTemplates | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.GraphDocument | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Graphics | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Graphics.Tools | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.HLSL | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.IISExpress | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.IntelliCode | 18.0.11121.172 |
| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.LinqToSql | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.LiveUnitTesting | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.ManagedDesktop.Core | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.MSODBC.SQL | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.Node.Tools | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.NuGet | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.NuGet.BuildTools | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.PortableLibrary | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Roslyn.Compiler | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Roslyn.LanguageServices | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Sharepoint.Tools | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.SQL.CLR | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.SQL.DataSources | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.SQL.SSDT | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.TeamOffice | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.TextTemplating | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.TypeScript.TSServer | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Unity | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.UWP.VC.ARM64 | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.UWP.VC.ARM64EC | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64 | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64 | 18.2.11414.340 |
| Microsoft.VisualStudio.Component.VC.ASAN | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.ATL | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM64 | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.ATL.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.ATLMFC | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.CLI.Support | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.CMake.Project | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VC.CoreIde | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VC.DiagnosticTools | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.VC.Llvm.Clang | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.VC.MFC.ARM64 | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.Redist.14.Latest | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.Redist.MSM | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64EC.Spectre | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.Tools.ARM64EC | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.Vcpkg | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VSSDK | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Wcf.Tooling | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Web | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.WebDeploy | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.Windows10SDK | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Windows11SDK.26100 | 18.2.11407.205 |
| Microsoft.VisualStudio.Component.Windows11Sdk.WindowsPerformanceToolkit | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.WindowsAppSdkSupport.CSharp | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Workflow | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.WslDebugging | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.AzureFunctions | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.All | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Android | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Blazor | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.iOS | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.MacCatalyst | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Shared | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Windows | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 18.1.11302.112 |
| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142 | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64 | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Web | 18.0.11111.16 |
| Microsoft.VisualStudio.ComponentGroup.Web.CloudTools | 18.0.11123.170 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.WindowsAppDevelopment.Prerequisites | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Azure | 18.2.11406.125 |
| Microsoft.VisualStudio.Workload.CoreEditor | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Data | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.DataScience | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.ManagedDesktop | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.ManagedGame | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.NativeCrossPlat | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.NativeDesktop | 18.0.11123.170 |
| Microsoft.VisualStudio.Workload.NativeGame | 18.0.11123.170 |
| Microsoft.VisualStudio.Workload.NativeMobile | 18.1.11302.112 |
| Microsoft.VisualStudio.Workload.NetCrossPlat | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.NetWeb | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Node | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Office | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Python | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Universal | 18.0.11123.170 |
| Microsoft.VisualStudio.Workload.VisualStudioExtension | 18.0.11101.84 |
| runtimes.ios | 10.1.225.61305 |
| runtimes.ios.net9 | 10.1.225.61305 |
| runtimes.maccatalyst | 10.1.225.61305 |
| runtimes.maccatalyst.net9 | 10.1.225.61305 |
| wasm.tools | 10.1.225.61305 |
| ProBITools.MicrosoftAnalysisServicesModelingProjects2022 | 4.0.0 |
| ProBITools.MicrosoftReportProjectsforVisualStudio2022 | 4.0.0 |
| SSIS.MicrosoftDataToolsIntegrationServices | 2.1.2 |
| VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects | 3.0.0 |
| Windows Driver Kit Visual Studio Extension | 10.0.26100.12 |
| Windows Software Development Kit | 10.1.26100.7175 |
| WixToolset.WixToolsetVisualStudio2022Extension | 1.0.0.22 |
#### Microsoft Visual C++
| Name | Architecture | Version |
| -------------------------------------------- | ------------ | ----------- |
| Microsoft Visual C++ 2013 Additional Runtime | x64 | 12.0.40660 |
| Microsoft Visual C++ 2013 Minimum Runtime | x64 | 12.0.40660 |
| Microsoft Visual C++ 2022 Additional Runtime | x64 | 14.50.35719 |
| Microsoft Visual C++ 2022 Debug Runtime | x64 | 14.50.35719 |
| Microsoft Visual C++ 2022 Minimum Runtime | x64 | 14.50.35719 |
| Microsoft Visual C++ 2022 Additional Runtime | x86 | 14.50.35719 |
| Microsoft Visual C++ 2022 Debug Runtime | x86 | 14.50.35719 |
| Microsoft Visual C++ 2022 Minimum Runtime | x86 | 14.50.35719 |
#### Installed Windows SDKs
- 10.0.26100.0
### .NET Core Tools
- .NET Core SDK: 8.0.123, 8.0.206, 8.0.319, 8.0.417, 9.0.113, 9.0.205, 9.0.310, 10.0.102
- .NET Framework: 4.8, 4.8.1
- Microsoft.AspNetCore.App: 8.0.6, 8.0.22, 8.0.23, 9.0.6, 9.0.12, 10.0.2
- Microsoft.NETCore.App: 8.0.6, 8.0.22, 8.0.23, 9.0.6, 9.0.12, 10.0.2
- Microsoft.WindowsDesktop.App: 8.0.6, 8.0.22, 8.0.23, 9.0.6, 9.0.12, 10.0.2
- nbgv 3.9.50+6feeb89450
### PowerShell Tools
- PowerShell 7.4.13
#### Powershell Modules
- Az: 14.6.0
- AWSPowershell: 5.0.146
- DockerMsftProvider: 1.0.0.8
- MarkdownPS: 1.10
- Microsoft.Graph: 2.35.0
- Pester: 3.4.0, 5.7.1
- PowerShellGet: 1.0.0.1, 2.2.5
- PSScriptAnalyzer: 1.24.0
- PSWindowsUpdate: 2.2.1.5
- SqlServer: 22.3.0
- VSSetup: 2.2.16
### Android
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 19.0 |
| Android Emulator | 36.3.10 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platforms | android-36.1 (rev 1)<br>android-36-ext19 (rev 1)<br>android-36-ext18 (rev 1)<br>android-36 (rev 2)<br>android-35-ext15 (rev 1)<br>android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3) |
| Android SDK Platform-Tools | 36.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.30.5<br>3.31.5<br>4.1.2 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 27.3.13750724<br>28.2.13676358<br>29.0.14206865 |
#### Environment variables
| Name | Value |
| ----------------------- | ---------------------------------------- |
| ANDROID_HOME | C:\Android\android-sdk |
| ANDROID_NDK | C:\Android\android-sdk\ndk\27.3.13750724 |
| ANDROID_NDK_HOME | C:\Android\android-sdk\ndk\27.3.13750724 |
| ANDROID_NDK_LATEST_HOME | C:\Android\android-sdk\ndk\29.0.14206865 |
| ANDROID_NDK_ROOT | C:\Android\android-sdk\ndk\27.3.13750724 |
| ANDROID_SDK_ROOT | C:\Android\android-sdk |
@@ -15,10 +15,14 @@ $imageMinorVersion = $imageVersionComponents[1]
$imageDataFile = $env:IMAGEDATA_FILE $imageDataFile = $env:IMAGEDATA_FILE
$githubUrl = "https://github.com/actions/runner-images/blob" $githubUrl = "https://github.com/actions/runner-images/blob"
if (Test-IsWin25) { if ((Test-IsWin25) -and $env:INSTALL_VS_2026) {
$imageLabel = "windows-2025" $imageLabel = "windows-2025-vs2026"
$softwareUrl = "${githubUrl}/win25/$imageMajorVersion.$imageMinorVersion/images/windows/Windows2025-Readme.md" $softwareUrl = "${githubUrl}/win25-vs2026/$imageMajorVersion.$imageMinorVersion/images/windows/Windows2025-VS2026-Readme.md"
$releaseUrl = "https://github.com/actions/runner-images/releases/tag/win25%2F$imageMajorVersion.$imageMinorVersion" $releaseUrl = "https://github.com/actions/runner-images/releases/tag/win25-vs2026%2F$imageMajorVersion.$imageMinorVersion"
} elseif (Test-IsWin25) {
$imageLabel = "windows-2025"
$softwareUrl = "${githubUrl}/win25/$imageMajorVersion.$imageMinorVersion/images/windows/Windows2025-Readme.md"
$releaseUrl = "https://github.com/actions/runner-images/releases/tag/win25%2F$imageMajorVersion.$imageMinorVersion"
} elseif (Test-IsWin22) { } elseif (Test-IsWin22) {
$imageLabel = "windows-2022" $imageLabel = "windows-2022"
$softwareUrl = "${githubUrl}/win22/$imageMajorVersion.$imageMinorVersion/images/windows/Windows2022-Readme.md" $softwareUrl = "${githubUrl}/win22/$imageMajorVersion.$imageMinorVersion/images/windows/Windows2022-Readme.md"
@@ -65,7 +65,13 @@ $cmdlineToolsArchPath = Invoke-DownloadWithRetry $cmdlineToolsUrl
Test-FileChecksum $cmdlineToolsArchPath -ExpectedSHA256Sum $androidToolset.hash Test-FileChecksum $cmdlineToolsArchPath -ExpectedSHA256Sum $androidToolset.hash
Expand-7ZipArchive -Path $cmdlineToolsArchPath -DestinationPath "${SDKInstallRoot}\cmdline-tools" $cmdlineToolsPath = Join-Path -Path $SDKInstallRoot -ChildPath "cmdline-tools"
if (Test-Path "$cmdlineToolsPath\latest") {
Write-Host "Removing previous cmdline-tools installation from Visual Studio workload"
Remove-Item "$cmdlineToolsPath\latest" -Recurse -Force
}
Expand-7ZipArchive -Path $cmdlineToolsArchPath -DestinationPath $cmdlineToolsPath
# cmdline tools should be installed in ${SDKInstallRoot}\cmdline-tools\latest\bin, but archive contains ${SDKInstallRoot}\cmdline-tools\bin # cmdline tools should be installed in ${SDKInstallRoot}\cmdline-tools\latest\bin, but archive contains ${SDKInstallRoot}\cmdline-tools\bin
# we need to create the proper folder structure # we need to create the proper folder structure
@@ -9,7 +9,7 @@ Install-VisualStudio `
-Version $vsToolset.subversion ` -Version $vsToolset.subversion `
-Edition $vsToolset.edition ` -Edition $vsToolset.edition `
-Channel $vsToolset.channel ` -Channel $vsToolset.channel `
-InstallChannel $vsToolset.installChannel ` -InstallChannelUri $vsToolset.installChannelUri `
-RequiredComponents $vsToolset.workloads ` -RequiredComponents $vsToolset.workloads `
-ExtraArgs "--allWorkloads --includeRecommended --remove Component.CPython3.x64" -ExtraArgs "--allWorkloads --includeRecommended --remove Component.CPython3.x64"
@@ -15,8 +15,8 @@ Function Install-VisualStudio {
.PARAMETER Channel .PARAMETER Channel
The channel of Visual Studio that will be installed. Required parameter. The channel of Visual Studio that will be installed. Required parameter.
.PARAMETER InstallChannel .PARAMETER InstallChannelUri
The InstallChannelUri of Visual Studio that will be installed. Required parameter. The InstallChannelUri of Visual Studio that will be installed. Optional parameter.
.PARAMETER RequiredComponents .PARAMETER RequiredComponents
The list of required components. Required parameter. The list of required components. Required parameter.
@@ -30,17 +30,24 @@ Function Install-VisualStudio {
[Parameter(Mandatory)] [String] $Version, [Parameter(Mandatory)] [String] $Version,
[Parameter(Mandatory)] [String] $Edition, [Parameter(Mandatory)] [String] $Edition,
[Parameter(Mandatory)] [String] $Channel, [Parameter(Mandatory)] [String] $Channel,
[String] $InstallChannel = "", [String] $InstallChannelUri = "",
[Parameter(Mandatory)] [String[]] $RequiredComponents, [Parameter(Mandatory)] [String[]] $RequiredComponents,
[String] $ExtraArgs = "" [String] $ExtraArgs = ""
) )
if (-not $env:INSTALL_VS_2026) {
$bootstrapperUrl = "https://aka.ms/vs/${Version}/postGRO-${Channel}/vs_${Edition}.exe" $bootstrapperUrl = "https://aka.ms/vs/${Version}/postGRO-${Channel}/vs_${Edition}.exe"
} else {
$bootstrapperUrl = "https://aka.ms/vs/${Version}/${Channel}/vs_${Edition}.exe"
}
$channelUri = "https://aka.ms/vs/${Version}/${Channel}/channel" $channelUri = "https://aka.ms/vs/${Version}/${Channel}/channel"
$channelId = "VisualStudio.${Version}.Release" $channelId = "VisualStudio.${Version}.Release"
$productId = "Microsoft.VisualStudio.Product.${Edition}" $productId = "Microsoft.VisualStudio.Product.${Edition}"
$installChannelUri = "https://aka.ms/vs/${Version}/${Channel}/${installchannel}/channel" if (-not [string]::IsNullOrEmpty($InstallChannelUri)) {
$installChannelUri = $InstallChannelUri
} else {
$installChannelUri = $channelUri
}
Write-Host "Downloading Bootstrapper ..." Write-Host "Downloading Bootstrapper ..."
$bootstrapperFilePath = Invoke-DownloadWithRetry $BootstrapperUrl $bootstrapperFilePath = Invoke-DownloadWithRetry $BootstrapperUrl
@@ -51,11 +58,11 @@ Function Install-VisualStudio {
try { try {
$responseData = @{ $responseData = @{
"installChannelUri" = $installChannelUri "installChannelUri" = $installChannelUri
"channelUri" = $channelUri "channelUri" = $channelUri
"channelId" = $channelId "channelId" = $channelId
"productId" = $productId "productId" = $productId
"arch" = "x64" "arch" = "x64"
"add" = $RequiredComponents | ForEach-Object { "$_;includeRecommended" } "add" = $RequiredComponents | ForEach-Object { "$_;includeRecommended" }
} }
# Create json file with response data # Create json file with response data
@@ -0,0 +1,270 @@
build {
sources = ["source.azure-arm.image"]
name = "windows-2025-vs2026"
provisioner "powershell" {
inline = [
"New-Item -Path ${var.image_folder} -ItemType Directory -Force",
"New-Item -Path ${var.temp_dir} -ItemType Directory -Force"
]
}
provisioner "file" {
destination = "${var.image_folder}\\"
sources = [
"${path.root}/../assets",
"${path.root}/../scripts",
"${path.root}/../toolsets"
]
}
provisioner "file" {
destination = "${var.image_folder}\\scripts\\docs-gen\\"
source = "${path.root}/../../../helpers/software-report-base"
}
provisioner "powershell" {
inline = [
"Move-Item '${var.image_folder}\\assets\\post-gen' 'C:\\post-generation'",
"Remove-Item -Recurse '${var.image_folder}\\assets'",
"Move-Item '${var.image_folder}\\scripts\\docs-gen' '${var.image_folder}\\SoftwareReport'",
"Move-Item '${var.image_folder}\\scripts\\helpers' '${var.helper_script_folder}\\ImageHelpers'",
"New-Item -Type Directory -Path '${var.helper_script_folder}\\TestsHelpers\\'",
"Move-Item '${var.image_folder}\\scripts\\tests\\Helpers.psm1' '${var.helper_script_folder}\\TestsHelpers\\TestsHelpers.psm1'",
"Move-Item '${var.image_folder}\\scripts\\tests' '${var.image_folder}\\tests'",
"Remove-Item -Recurse '${var.image_folder}\\scripts'",
"Move-Item '${var.image_folder}\\toolsets\\toolset-2025-vs2026.json' '${var.image_folder}\\toolset.json'",
"Remove-Item -Recurse '${var.image_folder}\\toolsets'"
]
}
provisioner "windows-shell" {
inline = [
"net user ${var.install_user} ${var.install_password} /add /passwordchg:no /passwordreq:yes /active:yes /Y",
"net localgroup Administrators ${var.install_user} /add",
"winrm set winrm/config/service/auth @{Basic=\"true\"}",
"winrm get winrm/config/service/auth"
]
}
provisioner "powershell" {
inline = ["if (-not ((net localgroup Administrators) -contains '${var.install_user}')) { exit 1 }"]
}
provisioner "powershell" {
elevated_password = "${var.install_password}"
elevated_user = "${var.install_user}"
inline = ["bcdedit.exe /set TESTSIGNING ON"]
}
provisioner "powershell" {
environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGE_OS=${var.image_os}", "AGENT_TOOLSDIRECTORY=${var.agent_tools_directory}", "IMAGEDATA_FILE=${var.imagedata_file}", "IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}", "INSTALL_VS_2026=true"]
execution_policy = "unrestricted"
scripts = [
"${path.root}/../scripts/build/Configure-WindowsDefender.ps1",
"${path.root}/../scripts/build/Configure-PowerShell.ps1",
"${path.root}/../scripts/build/Install-PowerShellModules.ps1",
"${path.root}/../scripts/build/Install-WSL2.ps1",
"${path.root}/../scripts/build/Install-WindowsFeatures.ps1",
"${path.root}/../scripts/build/Install-Chocolatey.ps1",
"${path.root}/../scripts/build/Configure-BaseImage.ps1",
"${path.root}/../scripts/build/Configure-ImageDataFile.ps1",
"${path.root}/../scripts/build/Configure-SystemEnvironment.ps1",
"${path.root}/../scripts/build/Configure-DotnetSecureChannel.ps1"
]
}
provisioner "windows-restart" {
check_registry = true
restart_check_command = "powershell -command \"& {while ( (Get-WindowsOptionalFeature -Online -FeatureName Containers -ErrorAction SilentlyContinue).State -ne 'Enabled' ) { Start-Sleep 30; Write-Output 'InProgress' }}\""
restart_timeout = "10m"
}
provisioner "powershell" {
inline = ["Set-Service -Name wlansvc -StartupType Manual", "if ($(Get-Service -Name wlansvc).Status -eq 'Running') { Stop-Service -Name wlansvc}"]
}
provisioner "powershell" {
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = [
"${path.root}/../scripts/build/Install-Docker.ps1",
"${path.root}/../scripts/build/Install-DockerWinCred.ps1",
"${path.root}/../scripts/build/Install-DockerCompose.ps1",
"${path.root}/../scripts/build/Install-PowershellCore.ps1",
"${path.root}/../scripts/build/Install-WebPlatformInstaller.ps1"
]
}
provisioner "windows-restart" {
restart_timeout = "30m"
}
provisioner "powershell" {
elevated_password = "${var.install_password}"
elevated_user = "${var.install_user}"
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}", "INSTALL_VS_2026=true"]
scripts = [
"${path.root}/../scripts/build/Install-VisualStudio.ps1",
"${path.root}/../scripts/build/Install-KubernetesTools.ps1"
]
valid_exit_codes = [0, 3010]
}
provisioner "windows-restart" {
check_registry = true
restart_timeout = "10m"
}
provisioner "powershell" {
pause_before = "2m0s"
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = [
"${path.root}/../scripts/build/Install-Wix.ps1",
"${path.root}/../scripts/build/Install-VSExtensions.ps1",
"${path.root}/../scripts/build/Install-AzureCli.ps1",
"${path.root}/../scripts/build/Install-AzureDevOpsCli.ps1",
"${path.root}/../scripts/build/Install-ChocolateyPackages.ps1",
"${path.root}/../scripts/build/Install-JavaTools.ps1",
"${path.root}/../scripts/build/Install-Kotlin.ps1",
"${path.root}/../scripts/build/Install-OpenSSL.ps1"
]
}
provisioner "powershell" {
execution_policy = "remotesigned"
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = ["${path.root}/../scripts/build/Install-ServiceFabricSDK.ps1"]
}
provisioner "windows-restart" {
restart_timeout = "10m"
}
provisioner "powershell" {
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = [
"${path.root}/../scripts/build/Install-ActionsCache.ps1",
"${path.root}/../scripts/build/Install-Ruby.ps1",
"${path.root}/../scripts/build/Install-PyPy.ps1",
"${path.root}/../scripts/build/Install-Toolset.ps1",
"${path.root}/../scripts/build/Configure-Toolset.ps1",
"${path.root}/../scripts/build/Install-NodeJS.ps1",
"${path.root}/../scripts/build/Install-AndroidSDK.ps1",
"${path.root}/../scripts/build/Install-PowershellAzModules.ps1",
"${path.root}/../scripts/build/Install-Pipx.ps1",
"${path.root}/../scripts/build/Install-Git.ps1",
"${path.root}/../scripts/build/Install-GitHub-CLI.ps1",
"${path.root}/../scripts/build/Install-PHP.ps1",
"${path.root}/../scripts/build/Install-Rust.ps1",
"${path.root}/../scripts/build/Install-Sbt.ps1",
"${path.root}/../scripts/build/Install-Chrome.ps1",
"${path.root}/../scripts/build/Install-EdgeDriver.ps1",
"${path.root}/../scripts/build/Install-Firefox.ps1",
"${path.root}/../scripts/build/Install-Selenium.ps1",
"${path.root}/../scripts/build/Install-IEWebDriver.ps1",
"${path.root}/../scripts/build/Install-Apache.ps1",
"${path.root}/../scripts/build/Install-Nginx.ps1",
"${path.root}/../scripts/build/Install-Msys2.ps1",
"${path.root}/../scripts/build/Install-WinAppDriver.ps1",
"${path.root}/../scripts/build/Install-R.ps1",
"${path.root}/../scripts/build/Install-AWSTools.ps1",
"${path.root}/../scripts/build/Install-DACFx.ps1",
"${path.root}/../scripts/build/Install-MysqlCli.ps1",
"${path.root}/../scripts/build/Install-SQLPowerShellTools.ps1",
"${path.root}/../scripts/build/Install-SQLOLEDBDriver.ps1",
"${path.root}/../scripts/build/Install-DotnetSDK.ps1",
"${path.root}/../scripts/build/Install-Mingw64.ps1",
"${path.root}/../scripts/build/Install-Haskell.ps1",
"${path.root}/../scripts/build/Install-Stack.ps1",
"${path.root}/../scripts/build/Install-Miniconda.ps1",
"${path.root}/../scripts/build/Install-AzureCosmosDbEmulator.ps1",
"${path.root}/../scripts/build/Install-Zstd.ps1",
"${path.root}/../scripts/build/Install-Vcpkg.ps1",
"${path.root}/../scripts/build/Install-Bazel.ps1",
"${path.root}/../scripts/build/Install-RootCA.ps1",
"${path.root}/../scripts/build/Install-MongoDB.ps1",
"${path.root}/../scripts/build/Install-CodeQLBundle.ps1",
"${path.root}/../scripts/build/Configure-Diagnostics.ps1"
]
}
provisioner "powershell" {
elevated_password = "${var.install_password}"
elevated_user = "${var.install_user}"
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = [
"${path.root}/../scripts/build/Install-PostgreSQL.ps1",
"${path.root}/../scripts/build/Install-WindowsUpdates.ps1",
"${path.root}/../scripts/build/Configure-DynamicPort.ps1",
"${path.root}/../scripts/build/Configure-GDIProcessHandleQuota.ps1",
"${path.root}/../scripts/build/Configure-Shell.ps1",
"${path.root}/../scripts/build/Configure-DeveloperMode.ps1",
"${path.root}/../scripts/build/Install-LLVM.ps1"
]
}
provisioner "windows-restart" {
check_registry = true
restart_check_command = "powershell -command \"& {if ((-not (Get-Process TiWorker.exe -ErrorAction SilentlyContinue)) -and (-not [System.Environment]::HasShutdownStarted) ) { Write-Output 'Restart complete' }}\""
restart_timeout = "30m"
}
provisioner "powershell" {
pause_before = "2m0s"
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = [
"${path.root}/../scripts/build/Install-WindowsUpdatesAfterReboot.ps1",
"${path.root}/../scripts/build/Invoke-Cleanup.ps1",
"${path.root}/../scripts/tests/RunAll-Tests.ps1"
]
}
provisioner "powershell" {
inline = ["if (-not (Test-Path ${var.image_folder}\\tests\\testResults.xml)) { throw '${var.image_folder}\\tests\\testResults.xml not found' }"]
}
provisioner "powershell" {
environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGE_FOLDER=${var.image_folder}"]
inline = ["pwsh -File '${var.image_folder}\\SoftwareReport\\Generate-SoftwareReport.ps1'"]
}
provisioner "powershell" {
inline = ["if (-not (Test-Path C:\\software-report.md)) { throw 'C:\\software-report.md not found' }", "if (-not (Test-Path C:\\software-report.json)) { throw 'C:\\software-report.json not found' }"]
}
provisioner "file" {
destination = "${path.root}/../Windows2025-VS2026-Readme.md"
direction = "download"
source = "C:\\software-report.md"
}
provisioner "file" {
destination = "${path.root}/../software-report.json"
direction = "download"
source = "C:\\software-report.json"
}
provisioner "powershell" {
environment_vars = ["INSTALL_USER=${var.install_user}"]
scripts = [
"${path.root}/../scripts/build/Install-NativeImages.ps1",
"${path.root}/../scripts/build/Configure-System.ps1",
"${path.root}/../scripts/build/Configure-User.ps1",
"${path.root}/../scripts/build/Post-Build-Validation.ps1"
]
skip_clean = true
}
provisioner "windows-restart" {
restart_timeout = "10m"
}
provisioner "powershell" {
inline = [
"if( Test-Path $env:SystemRoot\\System32\\Sysprep\\unattend.xml ){ rm $env:SystemRoot\\System32\\Sysprep\\unattend.xml -Force}",
"& $env:SystemRoot\\System32\\Sysprep\\Sysprep.exe /oobe /generalize /mode:vm /quiet /quit",
"while($true) { $imageState = Get-ItemProperty HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State | Select ImageState; if($imageState.ImageState -ne 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { Write-Output $imageState.ImageState; Start-Sleep -s 10 } else { break } }"
]
}
}
@@ -51,7 +51,7 @@ build {
inline = ["if (-not ((net localgroup Administrators) -contains '${var.install_user}')) { exit 1 }"] inline = ["if (-not ((net localgroup Administrators) -contains '${var.install_user}')) { exit 1 }"]
} }
provisioner "powershell" { provisioner "powershell" {
elevated_password = "${var.install_password}" elevated_password = "${var.install_password}"
elevated_user = "${var.install_user}" elevated_user = "${var.install_user}"
inline = ["bcdedit.exe /set TESTSIGNING ON"] inline = ["bcdedit.exe /set TESTSIGNING ON"]
@@ -7,6 +7,10 @@ locals {
"win25" = { "win25" = {
source_image_marketplace_sku = "MicrosoftWindowsServer:WindowsServer:2025-Datacenter-g2" source_image_marketplace_sku = "MicrosoftWindowsServer:WindowsServer:2025-Datacenter-g2"
os_disk_size_gb = 150 os_disk_size_gb = 150
},
"win25-vs2026" = {
source_image_marketplace_sku = "MicrosoftWindowsServer:WindowsServer:2025-Datacenter-g2"
os_disk_size_gb = 150
} }
} }
+1 -1
View File
@@ -147,7 +147,7 @@
"subversion" : "17", "subversion" : "17",
"edition" : "Enterprise", "edition" : "Enterprise",
"channel": "release", "channel": "release",
"installChannel": "", "installChannelUri": "",
"workloads": [ "workloads": [
"Component.Dotfuscator", "Component.Dotfuscator",
"Component.Linux.CMake", "Component.Linux.CMake",
@@ -0,0 +1,315 @@
{
"toolcache": [
{
"name": "Ruby",
"arch": "x64",
"platform" : "win32",
"versions": [
"3.2",
"3.3",
"3.4",
"4.0"
],
"default": "3.3"
},
{
"name": "Python",
"url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"3.10.*",
"3.11.*",
"3.12.*",
"3.13.*",
"3.14.*"
],
"default": "3.12.*"
},
{
"name": "PyPy",
"arch": "x86",
"platform" : "win64",
"versions": [
"3.9",
"3.10"
]
},
{
"name": "node",
"url" : "https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"20.*",
"22.*",
"24.*"
]
},
{
"name": "go",
"url" : "https://raw.githubusercontent.com/actions/go-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"1.22.*",
"1.23.*",
"1.24.*",
"1.25.*"
],
"default": "1.24.*"
}
],
"powershellModules": [
{ "name": "DockerMsftProvider" },
{ "name": "MarkdownPS" },
{ "name": "Pester" },
{ "name": "PowerShellGet" },
{ "name": "PSScriptAnalyzer" },
{ "name": "PSWindowsUpdate" },
{ "name": "SqlServer", "versions": [ "22.3.0" ] },
{ "name": "VSSetup" },
{ "name": "Microsoft.Graph" },
{"name": "AWSPowershell"}
],
"azureModules": [
{
"name": "az",
"versions": [
"14.6.0"
]
}
],
"java": {
"default": "17",
"versions": [ "8", "11", "17", "21", "25"]
},
"android": {
"commandline_tools_url": "https://dl.google.com/android/repository/commandlinetools-win-13114758_latest.zip",
"hash": "98B565CB657B012DAE6794CEFC0F66AE1EFB4690C699B78A614B4A6A3505B003",
"platform_min_version": "34",
"build_tools_min_version": "34.0.0",
"extras": [
"android;m2repository",
"google;m2repository",
"google;google_play_services"
],
"addons": [],
"additional_tools": [
"cmake;3.30.5",
"cmake;3.31.5",
"cmake;4.1.2"
],
"ndk": {
"default": "27",
"versions": [
"27", "28", "29"
]
}
},
"mingw": {
"version": "15.*",
"runtime": "ucrt"
},
"MsysPackages": {
"msys2": [],
"mingw": []
},
"windowsFeatures": [
{ "name": "Containers" },
{ "name": "Microsoft-Windows-Subsystem-Linux", "optionalFeature": true },
{ "name": "VirtualMachinePlatform", "optionalFeature": true },
{ "name": "NET-Framework-45-Features", "includeAllSubFeatures": true },
{ "name": "Client-ProjFS", "optionalFeature": true },
{ "name": "NET-Framework-Features", "includeAllSubFeatures": true },
{ "name": "Hyper-V", "includeAllSubFeatures": true },
{ "name": "HypervisorPlatform", "optionalFeature": true },
{ "name": "Hyper-V-PowerShell" },
{ "name": "Wireless-Networking" }
],
"visualStudio": {
"version" : "2026",
"subversion" : "18",
"edition" : "Enterprise",
"channel": "stable",
"installChannelUri": "",
"workloads": [
"Component.Linux.CMake",
"Component.UnityEngine.x64",
"Microsoft.Component.VC.Runtime.UCRTSDK",
"Microsoft.Net.Component.4.8.1.SDK",
"Microsoft.Net.Component.4.8.1.TargetingPack",
"Microsoft.VisualStudio.Component.AspNet45",
"Microsoft.VisualStudio.Component.Debugger.JustInTime",
"Microsoft.VisualStudio.Component.EntityFramework",
"Microsoft.VisualStudio.Component.DslTools",
"Microsoft.VisualStudio.Component.LinqToSql",
"Microsoft.VisualStudio.Component.SQL.SSDT",
"Microsoft.VisualStudio.Component.Sharepoint.Tools",
"Microsoft.VisualStudio.Component.PortableLibrary",
"Microsoft.VisualStudio.Component.TeamOffice",
"Microsoft.VisualStudio.Component.UWP.VC.ARM64",
"Microsoft.VisualStudio.Component.UWP.VC.ARM64EC",
"Microsoft.VisualStudio.Component.VC.CLI.Support",
"Microsoft.VisualStudio.Component.VC.CMake.Project",
"Microsoft.VisualStudio.Component.VC.DiagnosticTools",
"Microsoft.VisualStudio.Component.VC.Llvm.Clang",
"Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset",
"Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest",
"Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64EC",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.VC.Redist.MSM",
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM64EC.Spectre",
"Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre",
"Microsoft.VisualStudio.Component.VC.MFC.ARM64",
"Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.ATLMFC",
"Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.ATL.Spectre",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.ASAN",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64",
"Microsoft.VisualStudio.Component.Windows11SDK.26100",
"Microsoft.VisualStudio.Component.Workflow",
"Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang",
"Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142",
"Microsoft.VisualStudio.ComponentGroup.Web.CloudTools",
"Microsoft.VisualStudio.Workload.Azure",
"Microsoft.VisualStudio.Workload.Data",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.ManagedGame",
"Microsoft.VisualStudio.Workload.NativeCrossPlat",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NativeGame",
"Microsoft.VisualStudio.Workload.NativeMobile",
"Microsoft.VisualStudio.Workload.NetCrossPlat",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.Workload.Node",
"Microsoft.VisualStudio.Workload.Office",
"Microsoft.VisualStudio.Workload.Python",
"Microsoft.VisualStudio.Workload.Universal",
"Microsoft.VisualStudio.Workload.VisualStudioExtension",
"Component.MDD.Linux",
"Component.Microsoft.Windows.DriverKit",
"wasm.tools",
"Microsoft.Component.MSBuild"
],
"vsix": [
"SSIS.MicrosoftDataToolsIntegrationServices",
"VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects",
"WixToolset.WixToolsetVisualStudio2022Extension",
"ProBITools.MicrosoftReportProjectsforVisualStudio2022",
"ProBITools.MicrosoftAnalysisServicesModelingProjects2022"
]
},
"docker": {
"images": [],
"components": {
"docker": "27.5.1",
"compose": "2.32.2"
}
},
"pipx": [
{
"package": "yamllint",
"cmd": "yamllint --version"
}
],
"selenium": {
"version": "4"
},
"npm": {
"global_packages": [
{ "name": "yarn", "test": "yarn --version" },
{ "name": "newman", "test": "newman --version" },
{ "name": "lerna", "test": "lerna --version" },
{ "name": "gulp-cli", "test": "gulp --version" },
{ "name": "grunt-cli", "test": "grunt --version" }
]
},
"serviceFabric": {
"runtime": {
"version": "10.1.2493.9590",
"checksum": "09C63A971BACDE338282C73B3C9174BED9AAD53E1D3A1B73D44515852C9C00CF"
},
"sdk": {
"version": "7.1.2493",
"checksum": "0CB1084156C75CF5075EA91ABA330CF10B58648B8E036C9C2F286805263C497F"
}
},
"dotnet": {
"versions": [
"8.0",
"9.0",
"10.0"
],
"tools": [
{ "name": "nbgv", "test": "nbgv --version", "getversion": "nbgv --version" }
],
"warmup": false
},
"choco": {
"common_packages": [
{ "name": "7zip.install" },
{ "name": "aria2" },
{ "name": "azcopy10" },
{ "name": "Bicep" },
{ "name": "innosetup" },
{ "name": "jq" },
{ "name": "NuGet.CommandLine" },
{ "name": "packer" },
{ "name": "pulumi" },
{ "name": "swig" },
{ "name": "vswhere" },
{
"name": "julia",
"args": [ "--ia", "/DIR=C:\\Julia" ]
},
{
"name": "cmake.install",
"args": [ "--installargs", "ADD_CMAKE_TO_PATH=\"System\"" ]
},
{
"name": "strawberryperl" ,
"args": [ "--version", "5.42.0.1" ]
},
{ "name": "imagemagick" },
{ "name": "ninja" }
]
},
"node": {
"default": "22.*"
},
"maven": {
"version": "3.9"
},
"mysql": {
"version": "8.0"
},
"mongodb": {
"version": "7.0"
},
"llvm": {
"version": "20"
},
"php": {
"version": "8.5"
},
"postgresql": {
"version": "17"
},
"kotlin": {
"version": "latest"
},
"openssl": {
"version": "3.*"
},
"pwsh": {
"version": "7.4"
}
}
+1 -1
View File
@@ -132,7 +132,7 @@
"subversion" : "17", "subversion" : "17",
"edition" : "Enterprise", "edition" : "Enterprise",
"channel": "release", "channel": "release",
"installChannel": "", "installChannelUri": "",
"workloads": [ "workloads": [
"Component.Dotfuscator", "Component.Dotfuscator",
"Component.Linux.CMake", "Component.Linux.CMake",