我有一个多个项目的.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 aufdemDatenträgervorhandenist。 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 \ v14.0中的两个目录DotNet
和DotNet.Web
复制到构建服务器计算机。然后NuGet包恢复工作,但构建失败,并显示许多项目的以下消息:
C:\ GitLabCI \ builds \ 024ca24f \ 0 \ team \ MyTeam \ src \ Common \ Common.csproj:错误MSB4057:Das Ziel“_GenerateDependencyFragmentJson”ist im Projekt nicht vorhanden。
大致翻译为“目标'_GenerateDependencyFragmentJson'在项目中不存在。”谷歌甚至不知道这个词。
我知道盲目地将文件从一台机器复制到另一台机器并不是一件好事,我没想到这会起作用。至少它会产生以后的错误消息。
答案 0 :(得分:0)
虽然这可能不是我原来问题的答案,但这是一个(令人不快的)答案。
在构建服务器(代理)上安装完整的Visual Studio 2015。这包括处理这些项目所需的一切,就像在您的开发机器上一样。它只需要9 GB的磁盘空间和一个单独的许可证,但嘿,谁说它会很方便。