diff --git a/ref/Microsoft.Build.Utilities.Core/net/Microsoft.Build.Utilities.Core.cs b/ref/Microsoft.Build.Utilities.Core/net/Microsoft.Build.Utilities.Core.cs index a8564cf317b..25d9b341e72 100644 --- a/ref/Microsoft.Build.Utilities.Core/net/Microsoft.Build.Utilities.Core.cs +++ b/ref/Microsoft.Build.Utilities.Core/net/Microsoft.Build.Utilities.Core.cs @@ -321,11 +321,11 @@ public enum TargetDotNetFrameworkVersion Version461 = 8, Version452 = 9, Version462 = 10, - VersionLatest = 10, Version47 = 11, Version471 = 12, Version472 = 13, Version48 = 14, + VersionLatest = 14, Latest = 9999, } public partial class TargetPlatformSDK : System.IEquatable @@ -599,8 +599,8 @@ public enum VisualStudioVersion Version120 = 2, Version140 = 3, Version150 = 4, - VersionLatest = 4, Version160 = 5, Version170 = 6, + VersionLatest = 6, } } diff --git a/ref/Microsoft.Build.Utilities.Core/netstandard/Microsoft.Build.Utilities.Core.cs b/ref/Microsoft.Build.Utilities.Core/netstandard/Microsoft.Build.Utilities.Core.cs index 9d7111dfe72..3fbc85bcf6e 100644 --- a/ref/Microsoft.Build.Utilities.Core/netstandard/Microsoft.Build.Utilities.Core.cs +++ b/ref/Microsoft.Build.Utilities.Core/netstandard/Microsoft.Build.Utilities.Core.cs @@ -166,11 +166,11 @@ public enum TargetDotNetFrameworkVersion Version461 = 8, Version452 = 9, Version462 = 10, - VersionLatest = 10, Version47 = 11, Version471 = 12, Version472 = 13, Version48 = 14, + VersionLatest = 14, Latest = 9999, } public partial class TargetPlatformSDK : System.IEquatable @@ -433,8 +433,8 @@ public enum VisualStudioVersion Version120 = 2, Version140 = 3, Version150 = 4, - VersionLatest = 4, Version160 = 5, Version170 = 6, + VersionLatest = 6, } } diff --git a/src/Build.UnitTests/BuildEnvironmentHelper_Tests.cs b/src/Build.UnitTests/BuildEnvironmentHelper_Tests.cs index 8382f53d95d..487afd376b8 100644 --- a/src/Build.UnitTests/BuildEnvironmentHelper_Tests.cs +++ b/src/Build.UnitTests/BuildEnvironmentHelper_Tests.cs @@ -307,9 +307,9 @@ public void BuildEnvironmentDetectsVisualStudioByMSBuildProcessAmd64() [Theory] [SkipOnTargetFramework(TargetFrameworkMonikers.Netcoreapp, "No Visual Studio install for netcore")] [PlatformSpecific(TestPlatforms.Windows)] - [InlineData("16.0", true)] - [InlineData("16.3", true)] - [InlineData("15.0", false)] + [InlineData("17.0", true)] + [InlineData("17.3", true)] + [InlineData("16.0", false)] public void BuildEnvironmentDetectsVisualStudioFromSetupInstance(string visualStudioVersion, bool shouldBeValid) { using (var env = new EmptyVSEnviroment()) diff --git a/src/MSBuild/app.amd64.config b/src/MSBuild/app.amd64.config index c628bb06c2d..3ef1cfa3ffc 100644 --- a/src/MSBuild/app.amd64.config +++ b/src/MSBuild/app.amd64.config @@ -64,6 +64,7 @@ + diff --git a/src/Package/MSBuild.VSSetup/files.swr b/src/Package/MSBuild.VSSetup/files.swr index 9e82ee87cae..93a462aed27 100644 --- a/src/Package/MSBuild.VSSetup/files.swr +++ b/src/Package/MSBuild.VSSetup/files.swr @@ -21,7 +21,7 @@ vs.relatedProcessFiles folder InstallDir:\MSBuild\Current file source=$(X86BinPath)Microsoft.Common.props - file source=$(X86BinPath)Microsoft.VisualStudioVersion.v16.Common.props + file source=$(X86BinPath)Microsoft.VisualStudioVersion.v17.Common.props file source=$(ThirdPartyNotice) folder InstallDir:\MSBuild\Current\Bin diff --git a/src/Shared/BuildEnvironmentHelper.cs b/src/Shared/BuildEnvironmentHelper.cs index 3785175e7fd..5631f5c9358 100644 --- a/src/Shared/BuildEnvironmentHelper.cs +++ b/src/Shared/BuildEnvironmentHelper.cs @@ -15,7 +15,7 @@ internal class BuildEnvironmentHelper { // Since this class is added as 'link' to shared source in multiple projects, // MSBuildConstants.CurrentVisualStudioVersion is not available in all of them. - private const string CurrentVisualStudioVersion = "16.0"; + private const string CurrentVisualStudioVersion = "17.0"; // MSBuildConstants.CurrentToolsVersion private const string CurrentToolsVersion = "Current"; diff --git a/src/Shared/Constants.cs b/src/Shared/Constants.cs index e0c4da0540e..6289ef54bef 100644 --- a/src/Shared/Constants.cs +++ b/src/Shared/Constants.cs @@ -53,7 +53,7 @@ internal static class MSBuildConstants /// /// The most current Visual Studio Version known to this version of MSBuild. /// - internal const string CurrentVisualStudioVersion = "16.0"; + internal const string CurrentVisualStudioVersion = "17.0"; /// /// The most current ToolsVersion known to this version of MSBuild. @@ -70,7 +70,7 @@ internal static class MSBuildConstants /// /// Current version of this MSBuild Engine assembly in the form, e.g, "12.0" /// - internal const string CurrentProductVersion = "16.0"; + internal const string CurrentProductVersion = "17.0"; /// /// Symbol used in ProjectReferenceTarget items to represent default targets diff --git a/src/Shared/FrameworkLocationHelper.cs b/src/Shared/FrameworkLocationHelper.cs index e567fc1f64c..527c30d8105 100644 --- a/src/Shared/FrameworkLocationHelper.cs +++ b/src/Shared/FrameworkLocationHelper.cs @@ -307,6 +307,25 @@ internal static class FrameworkLocationHelper dotNetFrameworkVersion472, dotNetFrameworkVersion48, }), + + // VS17 + new VisualStudioSpec(visualStudioVersion170, "NETFXSDK\\{0}", "v10.0", "InstallationFolder", new [] + { + dotNetFrameworkVersion11, + dotNetFrameworkVersion20, + dotNetFrameworkVersion35, + dotNetFrameworkVersion40, + dotNetFrameworkVersion45, + dotNetFrameworkVersion451, + dotNetFrameworkVersion452, + dotNetFrameworkVersion46, + dotNetFrameworkVersion461, + dotNetFrameworkVersion462, + dotNetFrameworkVersion47, + dotNetFrameworkVersion471, + dotNetFrameworkVersion472, + dotNetFrameworkVersion48, + }), }; #if FEATURE_WIN32_REGISTRY diff --git a/src/Tasks/Microsoft.Build.Tasks.csproj b/src/Tasks/Microsoft.Build.Tasks.csproj index 0223ef51572..d24a745ce88 100644 --- a/src/Tasks/Microsoft.Build.Tasks.csproj +++ b/src/Tasks/Microsoft.Build.Tasks.csproj @@ -1,4 +1,4 @@ - + @@ -91,7 +91,7 @@ NGen.cs - + PropertyParser.cs True @@ -794,6 +794,9 @@ PreserveNewest + + PreserveNewest + $(AssemblyName).Strings.resources diff --git a/src/Tasks/Microsoft.VisualStudioVersion.v17.Common.props b/src/Tasks/Microsoft.VisualStudioVersion.v17.Common.props new file mode 100644 index 00000000000..452a3fe9cd4 --- /dev/null +++ b/src/Tasks/Microsoft.VisualStudioVersion.v17.Common.props @@ -0,0 +1,20 @@ + + + + + + 17.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + diff --git a/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs b/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs index f8554d8b18e..b2099ce44c5 100644 --- a/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs +++ b/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs @@ -2853,7 +2853,7 @@ private static IEnumerable EnumVisualStudioVersions() private static IEnumerable EnumDotNetFrameworkVersions() { - for (TargetDotNetFrameworkVersion dotNetVersion = TargetDotNetFrameworkVersion.Version11; dotNetVersion <= TargetDotNetFrameworkVersion.Latest; ++dotNetVersion) + for (TargetDotNetFrameworkVersion dotNetVersion = TargetDotNetFrameworkVersion.Version11; dotNetVersion <= TargetDotNetFrameworkVersion.VersionLatest; ++dotNetVersion) { yield return dotNetVersion; } diff --git a/src/Utilities/ToolLocationHelper.cs b/src/Utilities/ToolLocationHelper.cs index 1b6d83c2caa..a6095129d51 100644 --- a/src/Utilities/ToolLocationHelper.cs +++ b/src/Utilities/ToolLocationHelper.cs @@ -109,7 +109,7 @@ public enum TargetDotNetFrameworkVersion /// breaking change. Use 'Latest' if possible, but note the /// compatibility implications. /// - VersionLatest = Version462, + VersionLatest = Version48, /// /// Sentinel value for the latest version that this version of MSBuild is aware of. Similar @@ -160,7 +160,7 @@ public enum VisualStudioVersion Version160, /// - /// Visual Studio "Dev17" + /// Visual Studio 2022 (Dev17) /// Version170, @@ -168,7 +168,7 @@ public enum VisualStudioVersion /// /// The latest version available at the time of release /// - VersionLatest = Version150 + VersionLatest = Version170 } ///