【问题标题】:Choose Nuget Packager version in Visual Studio Team Services build step在 Visual Studio Team Services 构建步骤中选择 Nuget Packager 版本
【发布时间】:2017-07-15 04:42:41
【问题描述】:

为什么我不能在 Visual Studio Team Services 的构建步骤配置中选择 nuget 版本?似乎对于每个其他 nuget 构建步骤(安装程序、发布程序),我都可以在 3.3.0 和 3.5.0 之间进行选择,但是对于这个我不得不下载 nuget.exe,将其签入源代码控制并提供路径exe。

由于 nuget 3.3.0 无法直接从 project.json 制作包,因此能够在此步骤中选择版本非常有意义。

【问题讨论】:

    标签: .net build azure-devops


    【解决方案1】:

    是的,nuget 版本是在 NuGet Publisher 任务中定义的,但目前还没有在 NuGet Packager 任务中定义。如果您需要选择 nuget 版本,您可以使用 NuGet Packager 开发自己的任务。所有 VSTS 任务代码均为here 供您参考。

    选项2:您可以在源代码管理中添加您想要使用的nuget版本,并在NuGet Packager任务中添加路径。详情可以参考here

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,并且从一位 MS 支持技术人员那里得到了非常有用的回复。如果 3.5.0 尚不存在,这会将 3.5.0 下载到临时位置,因此避免必须在源代码控制系统中包含 nuget.exe。

      1) 添加 Powershell 脚本类型的任务并将其放在 Nuget Packager 步骤上方。
      2) 将类型设置为“内联脚本”
      3) 将默认内联脚本值替换为:

      $v = '3.5.0'
      $u = "https://dist.nuget.org/win-x86-commandline/v$v/NuGet.exe"
      $p = Join-Path ([IO.Path]::GetTempPath()) "NuGet-$v.exe"
      Write-Host "##vso[task.setvariable variable=downloadedNuGetExe]$p"
      if (Test-Path $p) { return }
      Invoke-WebRequest $u -OutFile $p
      

      4) 在 Nuget Packager 构建步骤中,将 Path to Nuget.exe 的值设置为我们刚刚设置的变量:

      $(downloadedNuGetExe)
      

      希望这会有所帮助,感谢 MS 支持技术人员 Aruna 提供的解决方案!

      【讨论】:

        【解决方案3】:

        [2017 年 11 月 29 日更新新功能信息]

        NuGet 工具安装程序任务是管理构建中使用的 NuGet 版本的首选方式。请参阅this blog post 了解更多信息。

        【讨论】:

        • 感谢亚历克斯!这是我关于您的回答的问题,因为我对此很陌生。如何添加 powershell 脚本以及 NuGet Packager 步骤是什么意思?非常感谢任何评论或结帐链接。
        【解决方案4】:

        我想不出任何好的理由,并查看存储库中的任务是由不同的开发人员创建的,也许是通信混淆,谁知道呢? :)

        您可以通过查看 Packager here 和 Publisher here 的 task.json 看到它只是没有为 Packager 实现 - 它在 Publisher 的 L91 上。

        问题 #3636 已被记录,一旦修复,不久之后将在 VSTS 上可用。

        【讨论】:

        • 只有 Installer 和 Publisher 任务使用版本选择器进行更新是一个疏忽。但是,我们将在即将到来的 sprint 中更新 NuGet Packager 任务,以启用当前在 Installer 和 Publisher 任务中可用的相同版本选择器。作为该更新的一部分,我们还将提供 NuGet 4.0。
        • @Alex,这个修复过吗?我仍然看不到指定 NuGet 版本的能力。我们正在使用来自 GitHub 和 TFS 版本 15.117.26714.0 的最新构建代理。
        • 是的!请参阅此处了解完整详情。 TFS 2017 U3 及更高版本的最佳体验,但也有适用于所有版本的解决方法。 blogs.msdn.microsoft.com/devops/2017/09/29/…
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-22
        • 2013-03-18
        • 1970-01-01
        • 1970-01-01
        • 2013-12-14
        • 1970-01-01
        相关资源
        最近更新 更多