.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文件中输出正确的依赖版本?
答案 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]
经我测试,效果很好:
注意:在执行dotnet restore
命令行之前,应将包ProjA发布到Feed中。
希望这会有所帮助。