【问题标题】:Is It possible to build asp.net core project using MSBuild from code?是否可以使用 MSBuild 从代码构建 asp.net 核心项目?
【发布时间】:2016-12-20 10:56:13
【问题描述】:

我想使用另一个 C# 项目构建 asp.net 核心项目。这是示例代码。 (我使用的是 Visual Studio 2015)

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 加载 (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Tasks.dll。 “Microsoft.DotNet.Tasks.KProcess”类型中的方法“get_BuildEngine” 从程序集'Microsoft.DotNet.Tasks,版本= 14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 没有 执行。确认申报无误, 程序集及其所有依赖项都可用,并且 任务包含一个实现的公共类 Microsoft.Build.Framework.ITask。完成构建目标 项目“WebApplication22.xproj”中的“_GetDependencyFragmentFiles”—— 失败。

注意:如果我使用 Visual Studio 命令提示符并使用 MSbuild,那么它可以正常工作。

【问题讨论】:

标签: visual-studio-2015 msbuild asp.net-core


【解决方案1】:

暂时没有。当您从 Visual Studio 命令提示符运行 msbuild 构建 asp.net 核心项目时,它将调用 dotnet.exe 进行构建。

MS 目前正在努力从 .xproj/project.json 迁移到 .csproj/MSBuild,并且最有可能在 Visual Studio 15 RTM 中可用。您可以参考此链接了解更多信息:Changes to Project.json

这一变化的第一波将发生在 Visual Studio “15” RTM:在 Visual Studio 中打开任何 .NET Core 项目时,它会 自动从 .xproj 转换为 .csproj,将资产从 将 project.json 文件转换为配置文件和 .csproj 文件。 我们还将提供一个工具,用于使用 .NET 转换应用程序 命令行工具也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 2019-09-03
    • 1970-01-01
    相关资源
    最近更新 更多