在我们的项目中,我们为不同的分支创建不同的NuGet包(使用后缀)。在.csproj文件中,我试图指定应该使用的包的特定版本。包名可以是1.2.3、1.2.3-rc001或1.2.3-pr001。
第一期:我使用
没有1.2.3的<PackageReference Include="Package.Name" Version="[1.2.3,1.2.6)" />。我的理解是它应该使用下一个可用的版本,但是现在它只是简单地说所选的包是1.2.3,并且“在这个源中不可用”。更新NuGets也忽略了这一点,只是对最新版本1.2.10进行了更新。之后,它将覆盖.csproj中的版本,因此将丢失指定的边界。
第二个问题(与第一个问题相同)是指定只使用-pr*或-rc*版本。1.2.*-pr*不是一个有效的选项,因此也许我们的编号方案需要改变。
发布于 2020-06-27 14:38:26
第一个问题:我使用没有1.2.3的地方进行了测试。我的理解是它应该使用下一个可用的版本,但是现在它只是简单地说所选的包是1.2.3,并且“在这个源中不可用”。
实际上是,当您通过浮动版本(在您的情况下是1.2.3<=version<1.2.6)设置nuget包的不同版本时,NuGet会选择最接近应用程序的包,而忽略其他版本。因此,它将选择1.2.3,而不管它是否存在于当前的nuget缓存中.见本文件。
因此,PackageReference不会根据当前缓存中最接近的可用版本引用包,并选择最新版本,而不管它是否存在于本地计算机下。
第二个问题,也就是第一个问题,就是指定只使用-pr*或-rc*版本。1.2.-pr不是一个有效的选择,因此也许我们的编号方案需要改变。
目前,预发布版本不能与浮动versions.It一起使用,这意味着您不能使用任何带有浮动版本的预发行字符。所以-pr*和-rc*都是非法的,包括1.2.*-pr*。
在使用期间,不会出现任何关于预发行版本的字符。
相反,您可以使用
1.2.*-*除了,1.2.*-beta1也是非法的。虽然它在Manager-->Installed下显示了依赖项UI下的版本,但是在Nuget包下找不到它,这意味着包丢失了,项目也丢失了它。
,除了,还有您可以参考的类似的问题。
https://stackoverflow.com/questions/62571873
复制相似问题