使用Azure DevOps上的NuGet包替换项目参考

时间:2019-04-17 15:40:24

标签: .net-core azure-devops nuget-package

.net核心库上有项目参考。在VSTS上进行dotnet打包期间,我们想将该项目引用更改为VSTS Feed中的实际NuGet包引用。

dotnet remove ProjB.csproj reference ../../ProjA/src/ProjA.csproj 
dotnet add ProjB.csproj package ProjA --no-restore 
dotnet restore ProjB.csproj
dotnet pack ProjB.csproj --no-restore

问题在带有--no-restore的“ dotnet add”中,因为它添加了带有version =“ *”的引用:

<PackageReference Include="ProjA " Version="*" />

这将导致ProjB.nuspec中引用的Package ProjA版本不正确(取自ProjA.scproj文件,而不是通过“ dotnet restore”还原的实际版本)

如果不使用--no-restore获取:

error: Unable to load the service index for source https://[our-team-project].pkgs.visualstudio.com/_packaging/[our-feed]/nuget/v3/index.json.
error:   Response status code does not indicate success: 401 (Unauthorized).

问题:有什么方法可以添加具有正确版本的软件包(不使用--no-restore)或强制“ dotnet pack”在ProjB.nuspec文件中输出正确的依赖版本?

1 个答案:

答案 0 :(得分:0)

  

有什么方法可以添加具有正确版本的软件包(不使用--no-restore)或强制“ dotnet pack”在ProjB.nuspec文件中输出正确的依赖版本?

您可以尝试添加选项[-v|--version]以指定实际版本。

检查文档dotnet add package以获得一些详细信息。

简介

dotnet add [<PROJECT>] package <PACKAGE_NAME> [-h|--help] [-f|--framework] [--interactive] [-n|--no-restore] [--package-directory] [-s|--source] [-v|--version]

经我测试,效果很好:

enter image description here

注意:在执行dotnet restore命令行之前,应将包ProjA发布到Feed中。

希望这会有所帮助。