首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略PackageReference版本

忽略PackageReference版本
EN

Stack Overflow用户
提问于 2020-06-25 09:12:28
回答 1查看 606关注 0票数 1

在我们的项目中,我们为不同的分支创建不同的NuGet包(使用后缀)。在.csproj文件中,我试图指定应该使用的包的特定版本。包名可以是1.2.31.2.3-rc0011.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*不是一个有效的选项,因此也许我们的编号方案需要改变。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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*

在使用期间,不会出现任何关于预发行版本的字符。

相反,您可以使用

代码语言:javascript
复制
1.2.*-*

除了1.2.*-beta1也是非法的。虽然它在Manager-->Installed下显示了依赖项UI下的版本,但是在Nuget包下找不到它,这意味着包丢失了,项目也丢失了它。

,除了,还有您可以参考的类似的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62571873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档