【问题标题】:Team Services: Nuget Packager task failing团队服务:Nuget Packager 任务失败
【发布时间】:2017-02-24 16:39:29
【问题描述】:

我在 Team Services 中有一个包含 Nuget Packager 任务的构建定义。我正在使用托管构建代理。
在最后几次构建中,此任务开始失败,并显示以下消息:

2017-02-22T21:43:24.9318762Z C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\2.112.0\externals\nuget\NuGet.exe pack "D:\a\1\s\src\app\Ormie\Ormie.csproj" -OutputDirectory "D:\a\1\s" -Properties Configuration=release
2017-02-22T21:43:25.5460318Z MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'.
2017-02-22T21:43:25.5460318Z Attempting to build package from 'Ormie.csproj'.
2017-02-22T21:43:25.7480272Z Packing files from 'D:\a\1\s\src\app\Ormie\bin\Release'.
2017-02-22T21:43:25.9040273Z Using 'Ormie.nuspec' for metadata.
2017-02-22T21:43:26.1645370Z ##[error]'System.Collections' already has a dependency defined for 'Microsoft.NETCore.Platforms'.
2017-02-22T21:43:26.1865365Z ##[error]System.Exception: Unexpected exit code 1 returned from tool NuGet.exe
2017-02-22T21:43:26.1865365Z    at Microsoft.TeamFoundation.DistributedTask.Task.Internal.InvokeToolCmdlet.ProcessRecord()
2017-02-22T21:43:26.1865365Z    at System.Management.Automation.CommandProcessor.ProcessRecord()
2017-02-22T21:43:26.2015355Z ##[error]PowerShell script completed with 1 errors.
2017-02-22T21:43:26.2025352Z ##[section]Finishing: NuGet Packager 

为了了解发生了什么,我尝试使用 NuGet 3.3 版在我的开发框中创建包,并得到了类似的消息。所以,我已经将 NuGet 更新到 3.5 版,尝试打包到我的机器中,它工作得很好。
所以,我的问题是:

  • Team Services 构建定义中是否有任何类型的配置 可以做些什么来解决这个问题?
  • 如何强制托管构建代理在 NuGet 打包程序任务?

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

    要将 nuget3.5 用于 nugget 打包任务,您可以将 nugget.exe 添加到源代码管理,然后使用 $(Build.SourcesDirectory)\nuget.exe 作为 nugget.exe 的路径

    对于 Nuget RestoreNuget Publisher 任务,他们在任务中定义了 3.3 和 3.5。您可以在VSTS task 中查看所有任务定义的task.json

    如果你想要Nuget Packager也可以选择nugget版本,你应该开发自己的任务,与Nuget Packager功能相同,并选择nuget版本。

    【讨论】:

    • 我希望避免在我的源代码管理中包含 nuget.exe。我猜 NuGet 3.5 一定在某个地方,因为它可以在 Nuget Installer 任务中选择。这是唯一的选择吗?这真的是 VSTS 的错误/问题吗?
    • 由于您使用的是托管代理,因此无法控制/安装软件。托管代理部署的软件为visualstudio.com/en-us/docs/build/concepts/agents/hosted。如果您不想在源代码管理中添加 nuget.exe,则可以使用自己的部署代理(如果它符合您的其他要求)。
    • 对不起,正如我的问题和我的 cmets 所述,我只是不明白。为什么 Nuget RestoreNuget Publisher 任务允许我选择 nuget 版本(3.3 或 3.5)而 Nuget Packager 不会。难道只有我觉得这很奇怪吗!?
    • 对于 Nuget RestoreNuget Publisher 任务,他们在任务中定义了 3.3 和 3.5。您可以在github.com/Microsoft/vsts-tasks/tree/master/Tasks 中查看所有任务定义的task.json。如果你想Nuget Packager也可以选择Nugget版本,你应该开发自己的任务,与Nuget Packager功能相同,并选择nuget版本。
    • 我们将在即将到来的 sprint 中更新 NuGet Packager 任务,以启用当前在 Installer 和 Publisher 任务中可用的相同版本选择器。作为该更新的一部分,我们还将提供 NuGet 4.0。
    猜你喜欢
    • 1970-01-01
    • 2016-07-19
    • 2017-02-27
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多