我想用另一个C#项目构建asp.net核心项目。这里是示例代码。 (我正在使用Visual Studio 2015)是否有可能使用MSBuild从代码构建asp.net核心项目?
var projectCollection = new Microsoft.Build.Evaluation.ProjectCollection(Microsoft.Build.Evaluation.ToolsetDefinitionLocations.Registry);
projectCollection.DefaultToolsVersion = "14.0";
projectCollection.RegisterLogger(new Microsoft.Build.Logging.ConsoleLogger(Microsoft.Build.Framework.LoggerVerbosity.Detailed));
var project = projectCollection.LoadProject(@"H:\Development\WebApplication22\src\WebApplication22\WebApplication22.xproj");
bool b = project.Build();
它给了我许多错误。以下是其中之一。
的 “GetTransitiveNonDotNetProjectDependencies” 任务不能 从组件C的装填:\ Program Files文件 (86)\的MSBuild \微软\ VisualStudio的\ v14.0 \ DOTNET的\ Microsoft.DotNet.Tasks.dll。 从程序集'Microsoft.DotNet.Tasks,Version = 14.0.0.0, '类型'Microsoft.DotNet.Tasks.KProcess' 中的方法'get_BuildEngine'Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'没有 实现。确认声明是正确的, 程序集及其所有依赖项都可用,并且 任务包含一个实现了 Microsoft.Build.Framework.ITask的公共类。完成构建目标 项目“WebApplication22.xproj”中的“_GetDependencyFragmentFiles” - 失败。
注意:如果我使用Visual Studio命令提示符并使用MSbuild,那么它工作正常。
可能这个链接有用 - https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild – Sanket
我做了一个测试你的代码,它重现相同的错误。我建议你可以以编程方式调用MSBuild命令来构建项目。另一方面,你可以参考这个工具代码:https://github.com/dotnet/buildtools –