diff --git a/DotNETBuild/Context/CompileConfiguration.cs b/DotNETBuild/Context/CompileConfiguration.cs
index 57bfe3b..fc9edb2 100644
--- a/DotNETBuild/Context/CompileConfiguration.cs
+++ b/DotNETBuild/Context/CompileConfiguration.cs
@@ -58,6 +58,9 @@ public string MsBuildFile
return GetMSBuildPath
(
msbuild,
+ VS2026EnterpriseMSBuild,
+ VS2026ProfessionalMSBuild,
+ VS2026CommunityMSBuild,
VS2022EnterpriseMSBuild,
VS2022ProfessionalMSBuild,
VS2022CommunityMSBuild,
@@ -180,6 +183,33 @@ public string VS2022CommunityMSBuild
get => GetString();
}
+ ///
+ /// VisualStudio 2026 企业版的 MSBuild.exe 文件所在路径
+ ///
+ public string VS2026EnterpriseMSBuild
+ {
+ set => SetFullPath(value);
+ get => GetString();
+ }
+
+ ///
+ /// VisualStudio 2026 社区版的 MSBuild.exe 文件所在路径
+ ///
+ public string VS2026ProfessionalMSBuild
+ {
+ set => SetFullPath(value);
+ get => GetString();
+ }
+
+ ///
+ /// VisualStudio 2026 社区版的 MSBuild.exe 文件所在路径
+ ///
+ public string VS2026CommunityMSBuild
+ {
+ set => SetFullPath(value);
+ get => GetString();
+ }
+
///
/// 获取 vstest.console.exe 文件路径
///
diff --git a/DotNETBuild/Utils/DotNetBuildTools_/MsBuild.cs b/DotNETBuild/Utils/DotNetBuildTools_/MsBuild.cs
index ee9a757..afc9578 100644
--- a/DotNETBuild/Utils/DotNetBuildTools_/MsBuild.cs
+++ b/DotNETBuild/Utils/DotNetBuildTools_/MsBuild.cs
@@ -176,6 +176,24 @@ public static void FindInstalledMSBuildFilePath(CompileConfiguration compileConf
{
compileConfiguration.VS2022CommunityMSBuild = vs2022CommunityMSBuild;
}
+
+ var vs2026EnterpriseMSBuild = @"C:\Program Files\Microsoft Visual Studio\18\Professional\MSBuild\Current\Bin\amd64\MSBuild.exe";
+ if (File.Exists(vs2022EnterpriseMSBuild))
+ {
+ compileConfiguration.VS2026EnterpriseMSBuild = vs2026EnterpriseMSBuild;
+ }
+
+ var vs2026ProfessionalMSBuild = @"C:\Program Files\Microsoft Visual Studio\18\Professional\Msbuild\Current\Bin\amd64\MSBuild.exe";
+ if (File.Exists(vs2022ProfessionalMSBuild))
+ {
+ compileConfiguration.VS2026ProfessionalMSBuild = vs2026ProfessionalMSBuild;
+ }
+
+ var vs2026CommunityMSBuild = @"C:\Program Files\Microsoft Visual Studio\18\Community\Msbuild\Current\Bin\amd64\MSBuild.exe";
+ if (File.Exists(vs2022CommunityMSBuild))
+ {
+ compileConfiguration.VS2026CommunityMSBuild = vs2026CommunityMSBuild;
+ }
}
}
diff --git a/Tests/DotNETBuild.Tests/MSBuildToolTest.cs b/Tests/DotNETBuild.Tests/MSBuildToolTest.cs
new file mode 100644
index 0000000..d24fc15
--- /dev/null
+++ b/Tests/DotNETBuild.Tests/MSBuildToolTest.cs
@@ -0,0 +1,28 @@
+using dotnetCampus.DotNETBuild.Utils;
+
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection.PortableExecutable;
+using System.Text;
+using System.Threading.Tasks;
+using dotnetCampus.Configurations.Core;
+
+namespace DotNETBuild.Tests;
+
+[TestClass]
+public class MSBuildToolTest
+{
+ [TestMethod]
+ public void TestFindMSBuild()
+ {
+ var memoryConfigurationRepo = new MemoryConfigurationRepo();
+ var appConfigurator = memoryConfigurationRepo.CreateAppConfigurator();
+ var msBuild = new MSBuild(appConfigurator);
+ var msBuildFile = msBuild.GetMSBuildFile();
+ Assert.IsTrue(File.Exists(msBuildFile));
+ }
+}