0

我知道以前有人问过这个问题,但没有任何答案,或者 nuget 没有很好地听取我的 packagereference。

我有一个私人 nuget 仓库,有 2 个程序集:

<PackageReference Include="ProjectX.Core" Version="1.0.0.20" />
<PackageReference Include="ProjectX.Domain" Version="1.0.0.20" />

我想要的是 nuget 在恢复时自动获取最新版本(通过 azure devops),根据官方文档,我应该执行以下操作:

<PackageReference Include="ProjectX.Core" Version="1.*" />
<PackageReference Include="ProjectX.Domain" Version="1.*" />

但是当我查看它时,它会尝试恢复到 1.0.0 版本(甚至不可用)。

如何让nuget自动获取最新版本?

4

1 回答 1

0

“为我工作”。如果它不适合您,如果您可以提供一个Minimal、Complete 和 Verifiable example,我们也许可以调试并查看问题所在。

繁殖步骤:

# setup isolated nuget environment
dotnet new nugetconfig
# you need to download nuget.exe for these commands, otherwise you have to hand edit nuget.config
nuget config -configfile .\nuget.config -set globalPackagesFolder=gpf
nuget sources -configfile .\nuget.config remove -name nuget
nuget sources -configfile .\nuget.config add -name local -source source

# create nupkgs
dotnet new classlib -n MyLib
cd MyLib
dotnet msbuild -t:pack -p:packageoutputpath=..\source -p:version=1.0.0.1
dotnet msbuild -t:pack -p:packageoutputpath=..\source -p:version=1.0.0.2
dotnet msbuild -t:pack -p:packageoutputpath=..\source -p:version=1.0.0.10
cd ..

# use latest version
dotnet new console -n MyApp
cd MyApp
dotnet add package MyLib --version "1.*"

# check version used. I'm using Powershell
Select-String -Path .\obj\project.assets.json -Pattern MyLib/
于 2019-03-02T15:13:27.597 回答