首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PackageReference版本化通配符csproj

PackageReference版本化通配符csproj
EN

Stack Overflow用户
提问于 2018-09-14 00:42:36
回答 1查看 6.9K关注 0票数 6

在我的NetStandard项目中有以下内容

代码语言:javascript
复制
<ItemGroup>
<PackageReference Include="MyReference" Version="1.0.*" />
</ItemGroup>

当我将其更改为使用通配符(而不是1.0.1)时,我会在依赖项切换上得到一个感叹号,然后是NuGet切换,当然还有包本身。

当我签入时,CI构建在另一端也会失败,这给了我

找不到包MyReference。源代码中没有此id的包:脱机包,nuget.org

当使用没有通配符的实际版本(1.0.1)时,上述所有问题都消失了,但我希望确保.NET核心还原任务始终恢复到最新的包,并且我希望有一个简单的通配符可以做到这一点。

我正在使用我自己的私有NuGet存储库(包管理扩展)

请给我建议。

为什么在CI构建期间使用通配符会失败,表示它找不到包?

因此,假设我已经将project1部署到自己的NuGet存储库中。Project2依赖于Project1,Project1已作为NuGet包添加到Project2中。Project1包驻留,在我自己的存储库中既没有问题也没有错误。

当我使用通配符并在本地构建时,它可以工作,并恢复最新版本。当我签入代码更改(在.csproj中保留通配符)时,前面提到的错误消息导致CI构建失败。

EN

回答 1

Stack Overflow用户

发布于 2018-09-14 03:20:48

根据官方医生

在使用PackageReference格式时,NuGet还支持使用通配符符号*,用于数字的主要、次要、修补程序和发布前后缀部分。packages.config格式不支持通配符。

请回答你的问题

始终在项目文件、packages.config文件和.nuspec文件中为包依赖项指定版本或版本范围。在没有版本或版本范围的情况下,NuGet 2.8.x和更早版本在解析依赖项时选择最新可用包版本,而NuGet 3.x则选择最低包版本。指定版本或版本范围可避免这种不确定性。

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

https://stackoverflow.com/questions/52323525

复制
相关文章

相似问题

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