You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2017中如何用Install-Package实现通配符版本包引用?

解决Install-Package命令中版本通配符的报错问题

这个报错很常见——Install-Package命令的-Version参数并不支持直接用*作为通配符,它要求传入符合语义化版本规范的版本号或版本范围,而*不在合法的参数范围内。不过你想要的“自动匹配最新版本”或者“通配符式版本引用”的需求,有几种可行的解决方式:

1. 直接安装最新稳定版(最简便)

如果你只是想安装该包的最新稳定版本,完全不需要指定-Version参数,NuGet默认会拉取最新的稳定版:

Install-Package somePackage

如果需要最新的预览版本,加上-Pre参数即可:

Install-Package somePackage -Pre

2. 使用NuGet支持的版本范围语法(替代通配符)

如果你想匹配特定版本段的最新版本(比如1.x系列、2.3.x系列),可以用NuGet支持的版本范围表达式,常见的写法有:

  • 匹配1.x系列的最新版本:
    Install-Package somePackage -Version "[1.x]"
    
  • 匹配2.3.x系列的最新版本:
    Install-Package somePackage -Version "2.3.*"
    
  • 匹配大于等于1.0.0且小于2.0.0的最新版本:
    Install-Package somePackage -Version ">=1.0.0 <2.0.0"
    

3. 手动修改PackageReference实现自动更新

如果你的目标是让项目的PackageReference保持Version="*"(以便后续自动拉取最新版本),可以按以下步骤操作:

  1. 先安装任意版本的包(比如最新稳定版):
    Install-Package somePackage
    
  2. 右键项目 → 选择“编辑项目文件”(.csproj),找到对应的PackageReference节点:
    <PackageReference Include="somePackage" Version="1.2.3" />
    
  3. 将Version的值修改为*:
    <PackageReference Include="somePackage" Version="*" />
    
  4. 保存文件后,NuGet会在下次还原时自动拉取该包的最新版本。

需要注意的是,Version="*"会匹配所有可用版本(包括预览版),如果只想限定稳定版,可以改用Version="[*,)",不过实际使用中*已经能满足大部分自动更新的需求。

内容的提问来源于stack exchange,提问作者user656822

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:01:43