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

如何在MSBuild Restore目标中引入预发布包(MSBuild15.1+/VS2017)

让NuGet在PackageReference模式下解析预发布版本(MSBuild 15.1+/VS2017)

针对你在CI脚本中遇到的问题——希望1.2.*版本通配符能匹配内部包MyPackageA的预发布版本,这里有几个可行的解决方案,适配MSBuild 15.1+的PackageReference深度集成场景:

方法1:在MSBuild Restore命令中添加预发布允许参数

这是CI脚本里最直接的调整方式,在现有命令中追加AllowPrereleaseVersions=true属性即可:

MSBuild.exe /t:Restore MySolution.sln /p:RestoreConfigFile=NuGet.config /p:AllowPrereleaseVersions=true

这个参数会让本次Restore操作全局允许所有包匹配预发布版本,适合你在CI环境中临时开启的场景。

方法2:在项目文件(.csproj)中针对单个包配置

如果你只想让MyPackageA匹配预发布版本,不影响其他包的稳定版本解析,可以直接修改项目里的PackageReference节点,添加AllowPrereleaseVersions属性:

<PackageReference Include="MyPackageA">
  <Version>1.2.*</Version>
  <AllowPrereleaseVersions>true</AllowPrereleaseVersions>
</PackageReference>

这种方式更精细,只会对指定包生效,适合项目级别的精准控制。

方法3:在NuGet.config中全局开启预发布允许

如果你的团队所有项目都需要默认匹配预发布版本,可以修改指定的NuGet.config文件,添加全局配置项:

<configuration>
  <config>
    <add key="allowPrerelease" value="True" />
  </config>
  <!-- 保留你原有的packageSources等配置内容 -->
</configuration>

这样所有使用这个NuGet.config的Restore操作都会默认允许预发布版本,适合团队统一配置的场景。

版本匹配规则说明

开启预发布允许后,1.2.*通配符会匹配所有主版本为1、次版本为2的预发布包,比如1.2.3-beta、1.2.4-rc1、1.2.5-preview等,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Alex Sanséau

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:56:41