我尝试使用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.dlls所以我尝试切换到那些 C:\ Program Files(x86)\ MSBuild \ 14.0 \ Bin 对于同样的例外。
答案 0 :(得分:0)
我最终需要通过nuget包获得MSBuild 15。如果我没有偶然发现这个链接,我还会遇到一些问题,这些问题会让我寻找替代方案: