Procházet zdrojové kódy

Add Visual Studio 2026 support to InstallVisualStudio.ps1 (#64406)

Copilot před 3 měsíci
rodič
revize
344dc33bb8

+ 38 - 11
eng/scripts/InstallVisualStudio.ps1

@@ -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
@@ -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,
@@ -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, intpreview (canary)
 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"
@@ -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 {

+ 1 - 1
eng/scripts/vs.17.buildtools.intpreview.json

@@ -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",

+ 1 - 1
eng/scripts/vs.17.buildtools.json

@@ -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",

+ 1 - 1
eng/scripts/vs.17.buildtools.preview.json

@@ -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",

+ 1 - 1
eng/scripts/vs.17.intpreview.json

@@ -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",

+ 1 - 1
eng/scripts/vs.17.json

@@ -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",

+ 1 - 1
eng/scripts/vs.17.preview.json

@@ -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",

+ 31 - 0
eng/scripts/vs.18.buildtools.intpreview.json

@@ -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 - 0
eng/scripts/vs.18.buildtools.json

@@ -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 - 0
eng/scripts/vs.18.buildtools.preview.json

@@ -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 - 0
eng/scripts/vs.18.intpreview.json

@@ -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 - 0
eng/scripts/vs.18.json

@@ -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 - 0
eng/scripts/vs.18.preview.json

@@ -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"
+    ]
+}

+ 2 - 2
eng/targets/Cpp.Common.props

@@ -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>

+ 0 - 44
src/Servers/IIS/AspNetCoreModuleV2/InProcessRequestHandler/managedexports.cpp

@@ -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
 //