【问题标题】:How to restore the latest version of a pre-release NuGet package as part of an Azure DevOps build如何在 Azure DevOps 构建中还原最新版本的预发布 NuGet 包
【发布时间】:2021-11-11 09:27:36
【问题描述】:

我正在创建一个预发布 NuGet 包作为 Azure DevOps 构建的一部分,并将其推送到内部 Azure DevOps 源。这工作正常。

作为同一管道的一部分,我想使用这个新推送的包,以便我可以恢复它并运行一些测试。我似乎找不到恢复最新版本的方法。

在我希望将其还原到的项目中,我已将包引用设置为具有通配符:

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

打包时,我在管道中使用此步骤:

- task: DotNetCoreCLI@2
  displayName: Pack
  inputs:
    command: pack
    versioningScheme: byPrereleaseNumber
    requestedMajorVersion: 0
    requestedMinorVersion: 1
    requestedPatchVersion: 0
    packagesToPack: 'src/**/*.csproj'
    packDestination: '$(Build.ArtifactStagingDirectory)'

这将创建一个版本号为 MyNewNuGetPackage.0.1.0-CI-20211111-084008.nupkg 的包

这已正确推送到我的内部提要,但是当我尝试恢复目标项目的包时,请使用以下步骤:

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

然后我得到这个错误:

(恢复目标)->

/home/vsts/work/1/s/MyTargetProject.csproj : 错误 NU1103: 找不到稳定的包 MyNewNuGetPackage 版本 (>= 0.0.0)

/home/vsts/work/1/s/MyTargetProject.csproj : 错误 NU1103: - 找到 2 个版本 feed-my-local-feed-id [最近的版本: 0.1.0-CI-20211111-084008]

/home/vsts/work/1/s/MyTargetProject.csproj : 错误 NU1103: - 在 NuGetOrg 中找到 0 个版本

所以任务可以看到那里有一个预发布版本,但我认为它只是在寻找非预发布(即稳定)版本,因为错误“无法找到稳定的包”。

作为此构建的一部分,我如何执行 NuGet 恢复以恢复最新的预发布包?

【问题讨论】:

    标签: .net azure-devops nuget


    【解决方案1】:

    尝试像这样在 csproj 文件中指定依赖版本:

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

    更多详情请见this specification

    【讨论】:

    • 是的,这正是我需要做的。谢谢!
    猜你喜欢
    • 2020-01-09
    • 2020-03-31
    • 2012-05-22
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 2021-08-09
    • 2020-12-20
    • 2019-03-26
    相关资源
    最近更新 更多