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

该解决方案可以在原始开发人员的盒子上很好地构建,而我已经从TFS中获得了解决方案,并且在我的产品上也可以很好地构建。与我们以前的方法保持一致,packages文件夹的内容随项目一起检入,因为这使软件包在构建框上本地可用(无Internet)。

但是,在构建服务器上构建解决方案则是另一回事,因为我遇到了多种形式的错误...

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

我在运行TFS构建定义时以及在远程访问框并直接通过框本身上的VS进行构建时都收到错误。

整个project.assets.json找不到问题似乎遍地都是令人头疼的问题。就我而言,问题是我正在尝试在我们的TFS 2017 Build Server上解决该问题,该服务器永远也不会访问Internet(因为这是一台服务器!)。

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

这还算不上什么,只是一个简单的TFS 2017 Build定义,其中包含“获取源代码”和“Build解决方案”步骤。我不明白如此简单的事情变得如此困难。

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

由于project.assets.json文件是在obj文件夹中动态生成的,因此我什至无法检入它们以进行重用。在测试项目陷入困境之际,任何人都可以提出解决方法。

编辑:使用VS2015创建的4.6.1 Web项目尝试相同的过程具有 Unresolved 引用(例如System.Web)相似的结果,但未引发相同的错误,可能是由于是较旧的非Core项目。

最佳答案

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

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

由于这是一个dotnet项目。因此,您可以尝试使用“dotnet restore”而不是“Nuget restore”。尝试使用dotnet核心模板(使用dotnet还原)。

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

没有dotnet恢复和Nuget恢复,仅使用get source/Visual Studio Build将无法生成dotnet核心项目。如果您的服务器无法访问互联网,则应使用Local feeds作为解决方法。

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

10-14 14:29
查看更多