Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 38 additions & 11 deletions eng/scripts/InstallVisualStudio.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@
Enterprise
.PARAMETER Channel
Selects which channel of Visual Studio to install. Must be one of these values:
Release (the default)
Preview
Release/Stable (the default)
Preview/Insiders
.PARAMETER Version
Selects which version of Visual Studio to install. Must be one of these values:
2022
2026
.PARAMETER InstallPath
The location on disk where Visual Studio should be installed or updated. Default path is location of latest
existing installation of the specified edition, if any. If that VS edition is not currently installed, default
Expand All @@ -35,9 +36,9 @@
param(
[ValidateSet('BuildTools','Community', 'Professional', 'Enterprise')]
[string]$Edition = 'Community',
[ValidateSet('Release', 'Preview', 'IntPreview', 'Dogfood')]
[ValidateSet('Release', 'Stable', 'Preview', 'Insiders', 'IntPreview', 'Dogfood')]
[string]$Channel = 'Release',
[ValidateSet('2022')]
[ValidateSet('2022', '2026')]
[string]$Version = '2022',
[string]$InstallPath,
[switch]$Passive,
Expand Down Expand Up @@ -67,20 +68,42 @@ $ProgressPreference = 'SilentlyContinue' # Workaround PowerShell/PowerShell#2138
if ("$Version" -eq "2022") {
$vsversion = 17;
}
$channelUri = "https://aka.ms/vs/$vsversion/release"
elseif ("$Version" -eq "2026") {
$vsversion = 18;
}

# Normalize channel names (Stable=Release, Insiders=Preview, Dogfood=IntPreview)
switch ($Channel) {
'Stable' { $Channel = 'Release' }
'Insiders' { $Channel = 'Preview' }
'Dogfood' { $Channel = 'IntPreview' }
}

$responseFileName = "vs.$vsversion"
if ("$Edition" -eq "BuildTools") {
$responseFileName += ".buildtools"
}
if ("$Channel" -eq "Dogfood") {
$Channel = "IntPreview"
}

# Channel URIs differ between VS 2022 and VS 2026+
# VS 2022: release, pre, intpreview
# VS 2026+: stable, insiders
if ("$Channel" -eq "Preview") {
$responseFileName += ".preview"
$channelUri = "https://aka.ms/vs/$vsversion/pre"
if ($vsversion -ge 18) {
$channelUri = "https://aka.ms/vs/$vsversion/insiders"
} else {
$channelUri = "https://aka.ms/vs/$vsversion/pre"
}
} elseif ("$Channel" -eq "IntPreview") {
$responseFileName += ".intpreview"
$channelUri = "https://aka.ms/vs/$vsversion/intpreview"
} else {
# Release channel
if ($vsversion -ge 18) {
$channelUri = "https://aka.ms/vs/$vsversion/stable"
} else {
$channelUri = "https://aka.ms/vs/$vsversion/release"
}
}

$responseFile = "$PSScriptRoot\$responseFileName.json"
Expand All @@ -107,11 +130,15 @@ if (-not $InstallPath) {
}

if (-not $InstallPath) {
if ($vsversion -eq "17") {
if (($vsversion -eq "17") -or ($vsversion -eq "18")) {
$pathPrefix = "${env:ProgramFiles}";
}
if ("$Channel" -eq "Preview") {
$InstallPath = "$pathPrefix\Microsoft Visual Studio\$Version\${Edition}_Pre"
if ($vsversion -ge 18) {
$InstallPath = "$pathPrefix\Microsoft Visual Studio\$Version\${Edition}_Insiders"
} else {
$InstallPath = "$pathPrefix\Microsoft Visual Studio\$Version\${Edition}_Pre"
}
} elseif ("$Channel" -eq "IntPreview") {
$InstallPath = "$pathPrefix\Microsoft Visual Studio\$Version\${Edition}_IntPre"
} else {
Expand Down
2 changes: 1 addition & 1 deletion eng/scripts/vs.17.buildtools.intpreview.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"Microsoft.VisualStudio.Component.VC.14.29.16.11.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools",
"Microsoft.VisualStudio.Workload.MSBuildTools",
"Microsoft.VisualStudio.Workload.NetCoreBuildTools",
Expand Down
2 changes: 1 addition & 1 deletion eng/scripts/vs.17.buildtools.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"Microsoft.VisualStudio.Component.VC.14.29.16.11.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools",
"Microsoft.VisualStudio.Workload.MSBuildTools",
"Microsoft.VisualStudio.Workload.NetCoreBuildTools",
Expand Down
2 changes: 1 addition & 1 deletion eng/scripts/vs.17.buildtools.preview.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"Microsoft.VisualStudio.Component.VC.14.29.16.11.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools",
"Microsoft.VisualStudio.Workload.MSBuildTools",
"Microsoft.VisualStudio.Workload.NetCoreBuildTools",
Expand Down
2 changes: 1 addition & 1 deletion eng/scripts/vs.17.intpreview.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"Microsoft.VisualStudio.Component.VC.14.29.16.11.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NetWeb",
Expand Down
2 changes: 1 addition & 1 deletion eng/scripts/vs.17.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"Microsoft.VisualStudio.Component.VC.14.29.16.11.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NetWeb",
Expand Down
2 changes: 1 addition & 1 deletion eng/scripts/vs.17.preview.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"Microsoft.VisualStudio.Component.VC.14.29.16.11.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NetWeb",
Expand Down
31 changes: 31 additions & 0 deletions eng/scripts/vs.18.buildtools.intpreview.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"channelUri": "https://aka.ms/vs/18/intpreview/channel",
"channelId": "VisualStudio.18.IntPreview",
"includeRecommended": false,
"addProductLang": [
"en-US"
],
"add": [
"Microsoft.Net.Component.4.6.2.TargetingPack",
"Microsoft.Net.Component.4.7.2.SDK",
"Microsoft.Net.Component.4.7.2.TargetingPack",
"Microsoft.VisualStudio.Component.FSharp.MSBuild",
"Microsoft.VisualStudio.Component.NuGet",
"Microsoft.VisualStudio.Component.NuGet.BuildTools",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools",
"Microsoft.VisualStudio.Workload.MSBuildTools",
"Microsoft.VisualStudio.Workload.NetCoreBuildTools",
"Microsoft.VisualStudio.Workload.VCTools",
"Microsoft.VisualStudio.Workload.VisualStudioExtensionBuildTools",
"Microsoft.VisualStudio.Workload.WebBuildTools"
]
}
31 changes: 31 additions & 0 deletions eng/scripts/vs.18.buildtools.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"channelUri": "https://aka.ms/vs/18/stable/channel",
"channelId": "VisualStudio.18.Release",
"includeRecommended": false,
"addProductLang": [
"en-US"
],
"add": [
"Microsoft.Net.Component.4.6.2.TargetingPack",
"Microsoft.Net.Component.4.7.2.SDK",
"Microsoft.Net.Component.4.7.2.TargetingPack",
"Microsoft.VisualStudio.Component.FSharp.MSBuild",
"Microsoft.VisualStudio.Component.NuGet",
"Microsoft.VisualStudio.Component.NuGet.BuildTools",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools",
"Microsoft.VisualStudio.Workload.MSBuildTools",
"Microsoft.VisualStudio.Workload.NetCoreBuildTools",
"Microsoft.VisualStudio.Workload.VCTools",
"Microsoft.VisualStudio.Workload.VisualStudioExtensionBuildTools",
"Microsoft.VisualStudio.Workload.WebBuildTools"
]
}
31 changes: 31 additions & 0 deletions eng/scripts/vs.18.buildtools.preview.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"channelUri": "https://aka.ms/vs/18/insiders/channel",
"channelId": "VisualStudio.18.Preview",
"includeRecommended": false,
"addProductLang": [
"en-US"
],
"add": [
"Microsoft.Net.Component.4.6.2.TargetingPack",
"Microsoft.Net.Component.4.7.2.SDK",
"Microsoft.Net.Component.4.7.2.TargetingPack",
"Microsoft.VisualStudio.Component.FSharp.MSBuild",
"Microsoft.VisualStudio.Component.NuGet",
"Microsoft.VisualStudio.Component.NuGet.BuildTools",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools",
"Microsoft.VisualStudio.Workload.MSBuildTools",
"Microsoft.VisualStudio.Workload.NetCoreBuildTools",
"Microsoft.VisualStudio.Workload.VCTools",
"Microsoft.VisualStudio.Workload.VisualStudioExtensionBuildTools",
"Microsoft.VisualStudio.Workload.WebBuildTools"
]
}
26 changes: 26 additions & 0 deletions eng/scripts/vs.18.intpreview.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"channelUri": "https://aka.ms/vs/18/intpreview/channel",
"channelId": "VisualStudio.18.IntPreview",
"includeRecommended": false,
"addProductLang": [
"en-US"
],
"add": [
"Microsoft.Net.Component.4.6.2.TargetingPack",
"Microsoft.Net.Component.4.7.2.SDK",
"Microsoft.Net.Component.4.7.2.TargetingPack",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.Workload.VisualStudioExtension"
]
}
26 changes: 26 additions & 0 deletions eng/scripts/vs.18.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"channelUri": "https://aka.ms/vs/18/stable/channel",
"channelId": "VisualStudio.18.Release",
"includeRecommended": false,
"addProductLang": [
"en-US"
],
"add": [
"Microsoft.Net.Component.4.6.2.TargetingPack",
"Microsoft.Net.Component.4.7.2.SDK",
"Microsoft.Net.Component.4.7.2.TargetingPack",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.Workload.VisualStudioExtension"
]
}
26 changes: 26 additions & 0 deletions eng/scripts/vs.18.preview.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"channelUri": "https://aka.ms/vs/18/insiders/channel",
"channelId": "VisualStudio.18.Preview",
"includeRecommended": false,
"addProductLang": [
"en-US"
],
"add": [
"Microsoft.Net.Component.4.6.2.TargetingPack",
"Microsoft.Net.Component.4.7.2.SDK",
"Microsoft.Net.Component.4.7.2.TargetingPack",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.Workload.VisualStudioExtension"
]
}
4 changes: 2 additions & 2 deletions eng/targets/Cpp.Common.props
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<Platform Condition="'$(Platform)' == ''">x64</Platform>
<PlatformToolsetVersion>v143</PlatformToolsetVersion>
<PlatformToolset>$(PlatformToolsetVersion)</PlatformToolset>
<!-- If the following line is updated ensure that the /eng/scripts/vs.17.*.json files are updated to include the same version component too. -->
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.19041.0</WindowsTargetPlatformVersion>
<!-- If the following line is updated ensure that the /eng/scripts/vs.*.*.json files are updated to include the same version component too. -->
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.22621.0</WindowsTargetPlatformVersion>
</PropertyGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -10,50 +10,6 @@ extern bool g_fInProcessApplicationCreated;
extern std::string g_errorPageContent;
extern IHttpServer* g_pHttpServer;

//
// Add support for certain HTTP/2.0 features like trailing headers
// and GOAWAY or RST_STREAM frames.
//

class __declspec(uuid("1a2acc57-cae2-4f28-b4ab-00c8f96b12ec"))
IHttpResponse4 : public IHttpResponse3
{
public:
virtual
HRESULT
DeleteTrailer(
_In_ PCSTR pszHeaderName
) = 0;

virtual
PCSTR
GetTrailer(
_In_ PCSTR pszHeaderName,
_Out_ USHORT* pcchHeaderValue = nullptr
) const = 0;

virtual
VOID
ResetStream(
_In_ ULONG errorCode
) = 0;

virtual
VOID
SetNeedGoAway(
VOID
) = 0;

virtual
HRESULT
SetTrailer(
_In_ PCSTR pszHeaderName,
_In_ PCSTR pszHeaderValue,
_In_ USHORT cchHeaderValue,
_In_ BOOL fReplace
) = 0;
};

//
// Initialization export
//
Expand Down
Loading