msbuild - 在构建服务器上使用 ASP.NET Core 项目构建解决方案

标签 msbuild asp.net-core

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

nuget.exe restore $solutionFile -NonInteractive

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

MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'. C:\GitLabCI\builds\024ca24f\0\team\MyTeam\src\MyWeb\MyWeb.xproj(7,3): error 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 支持?

更新:我从 C:\Program Files (x86)\MSBuild\VisualStudio\复制了两个目录 DotNetDotNet.Web v14.0 到构建服务器计算机。 NuGet 包恢复当时有效,但构建失败,并针对许多项目显示以下消息:

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

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

我知道盲目地将文件从一台机器复制到另一台机器并不是一件好事,而且我没想到这会起作用。至少它会产生稍后的错误消息。

最佳答案

虽然这可能不是我原来问题的答案,但它是问题的(令人不愉快的)答案。

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

关于msbuild - 在构建服务器上使用 ASP.NET Core 项目构建解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38699794/

相关文章:

c++ - “超出 PCH 的虚拟范围”问题 - 在 Visual Studio 2019 升级到 16.7.6 之后

visual-studio - 在调试和发布配置之间指定单独的 .editorconfig 文件

MSBuild任务以执行外部MSBuild文件

asp.net-core - npm 无法从 global.json 中找到 SDK 版本

asp.net-core - 使用新的用于 DotNet 核心的 signalR 从控制台应用程序向网页发送消息

c++ - 一个源文件更改导致在安装 Visual 2013 后在 Visual 2010 上重建完整项目

c# - 如何从 ASP.NET xproj 调用不安全代码

asp.net-core - 如何在 ASP.NET Core 中使用 EFCore 进行缓存

asp.net-core - .net 核心 dll 存储在我的计算机上的什么位置?

c# - "The project ' 迁移到 .NET Core 3 后 Web ' must provide a value for Configuration"错误