我们有一个项目依赖于自定义的NuGet提要(也托管在VSTS中)。
我正在尝试将新阶段放在一起以生成代码覆盖率报告,如this blog post所示。我的新阶段看起来像这样:
并且由以下步骤组成:
dotnet restore
,在“使用此VSTS / TFS feed中的程序包”下拉列表中选择了我的自定义feed dotnet test
及其相关参数来收集代码覆盖率问题是dotnet test
坚持尝试恢复软件包本身。由于我找不到告诉它使用自定义Feed的方法,因此在尝试还原这些软件包时失败了:
D:\a\1\s\MyProject\MyProject.csproj : error NU1101: Unable to find package My.Package. No packages exist with this id in source(s): Microsoft Visual Studio Offline Packages, nuget.org
我的主要构建过程运行良好,并且能够从自定义Feed中还原软件包。区别在于使用命令的Visual Studio版本(即不是dotnet
):
处理此问题的正确方法是什么?
我是否需要找到某种方法来告诉dotnet test
我的自定义供稿?
或者(假设我之前正在运行restore
),是否需要说服它完全跳过还原?
答案 0 :(得分:0)
万一其他人遇到这个问题,很遗憾地说,我们解决问题的方法是合并两个存储库,从而有效地消除了使用私有Nuget提要的必要。
我们确实有a bit of back and forth with a rep from MS,但没有深入了解它。
答案 1 :(得分:0)
处理此问题的正确方法是什么?
在步骤dotnet restore
中,确保字段Path to project(s)
指定所有相关项目。 (很容易忘记一个项目,这会导致您遇到问题。)例如,您可以指定值**/*.csproj
。如果正确执行此操作,则dotnet test
之类的其他步骤也不应尝试还原软件包,因为它们已经被还原。
我是否需要找到某种方法来告诉dotnet测试我的自定义提要?
否(假设步骤dotnet restore
已还原软件包)
或者(假设我之前正在运行
restore
),是否需要说服它完全跳过还原?
不。它将自动跳过还原(假设步骤dotnet restore
已经还原了软件包)
答案 2 :(得分:0)
我在自托管的构建代理程序上遇到了相同的错误。一旦将项目文件中的star语法(获取最新版本)更改为固定版本,问题就消失了。我不能使用版本语法让我感到很难过。