4

我们有一个项目依赖于自定义 NuGet 提要(也托管在 VSTS 中)。

我正在尝试组合一个新阶段来生成代码覆盖率报告,就像在这篇博文中一样。我的新阶段如下所示:

新阶段截图

并由以下步骤组成:

  1. .NET Core 工具安装程序 - 使用 SDK 2.0.0
  2. dotnet restore在“使用此 VSTS/TFS 提要中的包”下拉菜单中选择了我的自定义提要
  3. dotnet test使用相关参数收集代码覆盖率
  4. 使用 ReportGenerator 的自定义步骤
  5. 发布结果的步骤

问题是dotnet test坚持尝试恢复包本身。由于我找不到告诉它使用自定义提要的方法,因此在尝试恢复这些包时失败:

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

我的主要构建过程运行良好,并且能够从自定义提要中恢复包。不同之处在于使用 Visual Studio(即 not dotnet)版本的命令:

主要构建过程的屏幕截图

处理这个问题的正确方法是什么?

我需要找到一些方法来讲述dotnet test我的自定义提要吗?

或者(鉴于我restore之前正在运行)我是否需要说服它完全跳过恢复?

4

4 回答 4

0

我在dotnet 测试和自定义 nuget 提要方面遇到了类似的问题。解决方案是使用两个步骤:

  1. dotnet restore --source(我的提要来源)
  2. dotnet 测试 --no-restore

请参见隐式还原

于 2022-01-08T04:42:15.390 回答
0

处理这个问题的正确方法是什么?

在步骤dotnet restore中,确保字段Path to project(s)指定所有相关项目。(很容易忘记一个项目,这会导致您遇到的行为。)例如,您可以指定 value **/*.csproj。如果您正确执行此操作,则其他步骤(例如,dotnet test甚至不应该尝试恢复包,因为它们已经恢复)。

我是否需要想办法告诉 dotnet test 我的自定义提要?

否(假设 stepdotnet restore已经恢复了包)

或者(鉴于我restore之前正在运行)我是否需要说服它完全跳过恢复?

不会。它会自动跳过恢复(假设步骤dotnet restore已经恢复了包)

于 2019-01-24T09:34:41.273 回答
0

万一其他人有这个问题,我很遗憾地说我们的解决方法是合并两个存储库,有效地否定了使用私有 Nuget 提要的需要。

我们确实与 MS 的代表进行了一些来回交流,但没有深入了解它。

于 2018-09-05T04:32:13.283 回答
0

我在自托管构建代理上遇到了同样的错误。一旦我将项目文件中的星形语法(获取最新版本)更改为固定版本,问题就消失了。我有点难过我不能使用版本语法。

于 2020-12-15T15:51:30.430 回答