【问题标题】:Build a solution with an ASP.NET Core project on a build server在构建服务器上使用 ASP.NET Core 项目构建解决方案
【发布时间】:2016-12-06 14:09:17
【问题描述】:

我有多个项目的 .sln 解决方案,全部用于 .NET Framework 4.6,与 .NET Core 无关。现在,我使用 ASP.NET Core 添加了一个新的 Web 项目,仍然以 .NET Framework 4.6 为目标。基于 PowerShell 的构建脚本包含一个 NuGet 包还原,调用方式如下:

nuget.exe restore $solutionFile -NonInteractive

此操作失败并显示以下消息:

MSBuild 自动检测:使用来自“C:\Program Files (x86)\MSBuild\14.0\bin”的 msbuild 版本“14.0”。 C:\GitLabCI\builds\024ca24f\0\team\MyTeam\src\MyWeb\MyWeb.xproj(7,3): 错误 MSB4019: Das importierte Projekt "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\ v14.0\DotNet\Microsoft.DotNet.Props" wurde nicht gefunden。 Vergewissern Sie sich, dass der Pfad in der -Deklaration korrekt und die Datei auf dem Datenträger vorhanden ist。 System.Management.Automation.RemoteException

似乎缺少 MSBuild 的支持文件。但是我无法安装 ASP.NET Core 工具,因为他们坚持要求在构建服务器上安装完整的 Visual Studio 2015 IDE,这太疯狂了,我不想这样做。可以安装其他所有东西以最小化占用空间、构建工具和框架。

如果我忽略 NuGet 包还原,则构建会失败,因为显然缺少程序集。

如何在没有完整 VS IDE 的情况下为 ASP.NET Core 1.0 RTM 安装 MSBuild 支持?

更新:我将两个目录 DotNetDotNet.Web 从 C:\Program Files (x86)\MSBuild\VisualStudio\v14.0 复制到构建服务器计算机。 NuGet 包恢复工作,但构建失败,许多项目出现以下消息:

C:\GitLabCI\builds\024ca24f\0\team\MyTeam\src\Common\Common.csproj : 错误 MSB4057: Das Ziel "_GenerateDependencyFragmentJson" ist im Projekt nicht vorhanden。

大致翻译为“项目中不存在目标'_GenerateDependencyFragmentJson'。” Google 甚至不知道这个词。

我知道盲目地将文件从一台机器复制到另一台机器不是一件好事,我没想到这会奏效。至少它会产生以后的错误消息。

【问题讨论】:

  • 你必须使用dotnet restore来恢复包
  • 我仍然需要 NuGet 还原。解决方案中还有其他 .csproj 文件,而不仅仅是 ASP.NET Core!
  • @ygoe 你找到解决方案了吗?
  • @nboisvert 查看我自己的答案。

标签: msbuild asp.net-core


【解决方案1】:

虽然这可能不是我最初问题的答案,但它是对问题的(不愉快的)答案。

在构建服务器(代理)上安装完整的 Visual Studio 2015。这包含处理这些项目所需的一切,就像在您的开发机器上一样。它只需要 9 GB 的磁盘空间和一个单独的许可证,但是嘿,谁说这很方便。

【讨论】:

    猜你喜欢
    • 2011-02-10
    • 2011-06-07
    • 2015-05-06
    • 2023-03-26
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多