【发布时间】:2018-10-12 21:44:27
【问题描述】:
我正在尝试使用 Microsoft.Build 库从我的应用程序编译项目。我可能会使用它来构建的所有项目都是 VS2017 中的 .Net 4.7.1 项目。这是我有问题的代码和我收到的错误:
var loggerPath = $"C:\\temp\\{FilenameOnly}BuildLog.txt";
var collection = ProjectCollection.GlobalProjectCollection;
var logger = new FileLogger();
logger.Parameters = $"logfile={loggerPath}";
collection.RegisterLogger(logger);
var project = collection.LoadProject(FileWithPath);
project.SetProperty("Configuration", buildConfiguration);
project.Build();
Microsoft.Build.Exceptions.InvalidProjectFileException: '项目的默认 XML 命名空间必须是 MSBuild XML 命名空间。如果项目以 MSBuild 2003 格式创作,请将 xmlns="http://schemas.microsoft.com/developer/msbuild/2003" 添加到元素中。如果项目是以旧的 1.0 或 1.2 格式创作的,请将其转换为 MSBuild 2003 格式。
听起来我使用了错误的 MSBuild,我认为我引用了错误的 Microsoft.Build.x.dll,所以我尝试切换到 C:\Program 文件 (x86)\MSBuild\14.0\Bin 同样的例外。
【问题讨论】:
-
您很可能需要 MSBuild 15。
-
谢谢,我最终通过 nuget 包获得了 MSBuild 15(根据您的建议),并偶然发现了一些复杂问题以使其正常工作。
标签: c#