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

Azure DevOps构建中如何还原最新预发布NuGet包?

问题根因

报错的核心触发逻辑是NuGet默认规则下,未明确声明允许预发布版本时,包还原操作只会匹配稳定版本包,即使源中存在符合版本范围的预发布版本也不会自动选用。

解决方案(二选一即可)

方案1:修改项目的包引用规则

直接在PackageReference的版本规则中声明允许匹配预发布版本,将原版本通配符0.*改为0.*-*即可,修改后的配置如下:

<ItemGroup>
    <PackageReference Include="MyNewNuGetPackage" Version="0.*-*" />
</ItemGroup>

*-*后缀表示允许匹配任意预发布后缀的版本,NuGet会自动拉取符合主版本规则的最新预发布包。

方案2:给还原步骤添加预发布允许参数

如果不想修改项目文件,可以在dotnet restore命令中添加--prerelease参数,强制还原时包含预发布版本,同时建议添加--no-cache参数跳过本地缓存,避免刚推送的包还没同步到本地缓存导致拉取失败。修改后的还原步骤配置如下:

- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: 'MyTargetProject.csproj'
    feedsToUse: 'select'
    vstsFeed: 'my-local-feed-id'
    arguments: '--prerelease --no-cache'

额外注意事项

如果配置修改后仍偶发拉不到刚推送的包,可能是Azure DevOps内部feed的索引延迟导致,可以在包推送步骤和还原步骤之间添加一个10秒以内的等待任务,规避索引未更新的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:15:08