continuous-integration - 未找到 project.assets.json - TFS 构建服务器,没有互联网

标签 continuous-integration visual-studio-2017

我们刚刚从 VS2013&15/TFS2013 过渡到 VS2017/TFS2017(现场 TFS,而不是 VSTS),第一个测试解决方案是基于 dotNet Core 1.1 的解决方案(多项目 Web 服务)。

该解决方案在原始开发人员的盒子上构建得很好,我已经从 TFS 中得到了它,它在我的上也能很好地构建。与我们之前的方法保持一致,包文件夹的内容与项目一起检入,因为这使得包在构建框上本地可用(没有互联网)。

然而,在构建服务器上构建解决方案是另一回事,因为我收到了表单的多个错误......

..\obj\project.assets.json' not found. Run a NuGet package restore to generate this file.

当我运行 TFS 构建定义时以及当我远程连接到盒子并直接通过盒子本身上的 VS 构建时,我都会收到错误消息。

整个 project.assets.json not found 问题似乎让整个人头疼不已。在我的情况下,问题是我试图在我们的 TFS 2017 Build Server 上解决它,它没有也永远不会有互联网访问('因为它是一个服务器!)。

到目前为止,我看到的所有解决方案似乎都建议运行 Nuget Restore 命令,但由于服务器无法访问 nuget,因此无法正常工作。

这还没有什么花哨的,只是一个简单的 TFS 2017 Build 定义,带有一个获取源和一个构建解决方案步骤。我无法理解如此简单的事情怎么变得如此困难。

更改 Nuget 包还原选项没有任何区别。

由于 project.assets.json 文件是在 obj 文件夹中即时生成的,我什至无法将它们 checkin 以重新使用。任何人都可以提出一个解决方法,目前测试项目已经死了。

编辑:对使用 VS2015 创建的 4.6.1 web 项目尝试相同的过程有类似的未解析引用的结果(例如 System.Web),但没有引发相同的错误,可能是由于是一个较旧的非核心项目。

最佳答案

根据我在运行 TFS 构建定义和远程连接到盒子并直接通过盒子本身上的 VS 构建时都得到错误。

该问题似乎与 TFS 构建端无关,因为它也不适用于构建代理机器中通过 VS 进行的本地构建。

由于这是一个 dotnet 项目。所以,你可以尝试使用“dotnet restore ”而不是“nuget恢复”。尝试使用 dotnet 核心模板(使用 dotnet restore)。

如果您使用的是经过身份验证的 nuget 提要,那么您可以使用 nuget restore,但您还需要使用 nuget 安装程序任务。见 https://github.com/Microsoft/vsts-tasks/issues/3762对此进行讨论。
Nuget 版本应高于 4.0。

如果没有 dotnet restore 和 Nuget restore 并且只使用 get source/Visual Studio Build 将无法构建 dotnet 核心项目。如果您的服务器无法访问互联网,作为一种解决方法,您应该使用 Local feeds .

关于continuous-integration - 未找到 project.assets.json - TFS 构建服务器,没有互联网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48556514/

相关文章:

android - 如何在travis-ci上显示android模拟器的logcat?

java - 从 Jenkins 将环境变量传递给 Ant build.xml?

visual-studio-2012 - 无法从 Windows 或 Windows Phone 项目的非交互式服务运行 VSTest.Console.exe

c++ - 请参阅 VS2017 中的 C++ 编译器和链接器命令行参数

visual-studio - Visual Studio 2017 中缺少高级保存选项

android - 在 Docker 中为 Android 运行并行的 Gitlab CI 作业

Azure 服务结构创建包命令行

c - C中指针的自由函数问题

c++ - GetWindowText 故障

c++ - Visual Studio 2017 cMake 图 TableView