【问题标题】:Compiling a project with Microsoft.Build: The default namespace of the project must be the MSBuild XML namespace使用 Microsoft.Build 编译项目:项目的默认命名空间必须是 MSBuild XML 命名空间
【发布时间】: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#


【解决方案1】:

我最终需要通过 nuget 包获取 MSBuild 15。如果我没有偶然发现此链接,我还遇到了一些其他问题,这些问题会让我寻找替代方案:

MSBuild 15: The "Error" task could not be instantiated

【讨论】:

    猜你喜欢
    • 2017-07-19
    • 1970-01-01
    • 2018-08-12
    • 2019-10-18
    • 2020-02-08
    • 2018-06-13
    • 2020-02-25
    • 2021-10-10
    • 1970-01-01
    相关资源
    最近更新 更多