如何 运行 使用自定义 NuGet 提要在 VSTS 上进行 dotnet 测试?
How to run dotnet test on VSTS with custom NuGet feed?
我们有一个项目依赖于自定义 NuGet 提要(也托管在 VSTS 中)。
我正在尝试组合一个新阶段来生成代码覆盖率报告,如 this blog post 中所示。我的新阶段如下所示:
由以下步骤组成:
- .NET Core 工具安装程序 - 使用 SDK 2.0.0
dotnet restore
在 "Use packages from this VSTS/TFS feed" 下拉列表中选择了我的自定义 Feed
dotnet test
用相关参数收集代码覆盖率
- 使用 ReportGenerator 的自定义步骤
- 发布结果的一步
问题是 dotnet test
坚持尝试自行恢复软件包。由于我找不到告诉它使用自定义提要的方法,因此在尝试恢复这些包时它失败了:
D:\a\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(即不是 dotnet
)版本的命令:
处理这个问题的正确方法是什么?
我需要找到一些方法来告诉 dotnet test
我的自定义 Feed 吗?
或者(鉴于我之前 运行 restore
)我需要说服它完全跳过恢复吗?
万一其他人有这个问题,我很抱歉地说我们的解决方法是合并两个 repos,有效地否定了使用私有 Nuget 提要的需要。
我们确实有 a bit of back and forth with a rep from MS,但没有追根究底。
What's the right way to handle this?
在步骤 dotnet restore
中,确保字段 Path to project(s)
指定所有相关项目。 (很容易忘记一个项目,这会导致您遇到这种情况。)例如,您可以指定值 **/*.csproj
。如果您正确执行此操作,其他步骤(例如 dotnet test
甚至不应该尝试还原包,因为它们已经被还原。
Do I need to find some way to tell dotnet test about my custom feed?
否(假设步骤 dotnet restore
已经恢复包)
Or (given that I'm running restore
immediately prior) do I need to persuade it to skip the restore altogether?
没有。它会自动跳过恢复(假设步骤 dotnet restore
已经恢复了包)
我在自托管构建代理上遇到了同样的错误。一旦我将项目文件中的星形语法(获取最新版本)更改为固定版本,问题就消失了。我有点难过,我不能使用版本语法。
我在使用 dotnet 测试 和自定义 nuget 提要时遇到了类似的问题。
该解决方案使用两个步骤:
- dotnet restore --source(我的源)
- dotnet 测试 --no-restore
我们有一个项目依赖于自定义 NuGet 提要(也托管在 VSTS 中)。
我正在尝试组合一个新阶段来生成代码覆盖率报告,如 this blog post 中所示。我的新阶段如下所示:
由以下步骤组成:
- .NET Core 工具安装程序 - 使用 SDK 2.0.0
dotnet restore
在 "Use packages from this VSTS/TFS feed" 下拉列表中选择了我的自定义 Feeddotnet test
用相关参数收集代码覆盖率- 使用 ReportGenerator 的自定义步骤
- 发布结果的一步
问题是 dotnet test
坚持尝试自行恢复软件包。由于我找不到告诉它使用自定义提要的方法,因此在尝试恢复这些包时它失败了:
D:\a\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(即不是 dotnet
)版本的命令:
处理这个问题的正确方法是什么?
我需要找到一些方法来告诉 dotnet test
我的自定义 Feed 吗?
或者(鉴于我之前 运行 restore
)我需要说服它完全跳过恢复吗?
万一其他人有这个问题,我很抱歉地说我们的解决方法是合并两个 repos,有效地否定了使用私有 Nuget 提要的需要。
我们确实有 a bit of back and forth with a rep from MS,但没有追根究底。
What's the right way to handle this?
在步骤 dotnet restore
中,确保字段 Path to project(s)
指定所有相关项目。 (很容易忘记一个项目,这会导致您遇到这种情况。)例如,您可以指定值 **/*.csproj
。如果您正确执行此操作,其他步骤(例如 dotnet test
甚至不应该尝试还原包,因为它们已经被还原。
Do I need to find some way to tell dotnet test about my custom feed?
否(假设步骤 dotnet restore
已经恢复包)
Or (given that I'm running
restore
immediately prior) do I need to persuade it to skip the restore altogether?
没有。它会自动跳过恢复(假设步骤 dotnet restore
已经恢复了包)
我在自托管构建代理上遇到了同样的错误。一旦我将项目文件中的星形语法(获取最新版本)更改为固定版本,问题就消失了。我有点难过,我不能使用版本语法。
我在使用 dotnet 测试 和自定义 nuget 提要时遇到了类似的问题。 该解决方案使用两个步骤:
- dotnet restore --source(我的源)
- dotnet 测试 --no-restore