GoCD Nuget问题

时间:2017-04-21 16:02:57

标签: nuget go-cd

我有一个项目,而我的经纪人确实安装了nuget - 不起诉我做什么wwong

12:01:14.195 [go] Start to build DemoApp/20/second/1/secondJob on vivians-mbp-2.delta.rl.delta.com [/Users/vivianaranha/Library/Application Support/Go Agent]
12:01:14.195 [go] Current job status: passed.

12:01:14.195 [go] Start to execute task: <exec command="nuget restore packages.config -PackagesDirectory ..\..\packages" workingdir="EMApp\EMApp\EMApp.iOS" />.
12:01:14.199 Error happened while attempting to execute 'nuget restore packages.config -PackagesDirectory ..\..\packages'. 
Please make sure [nuget restore packages.config -PackagesDirectory ..\..\packages] can be executed on this agent.

12:01:14.199 [Debug Information] Environment variable PATH: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/local/bin
12:01:14.206 [go] Current job status: failed.

2 个答案:

答案 0 :(得分:1)

您是否尝试将构建详细信息设置为更详细?另外,从我这样做的时候,我的构建使用了源代码管理中保存的nuget.exe,而不是构建代理

答案 1 :(得分:0)

你在GoCD 期待exec任务成为shell执行时犯了一个常见的错误。 通过该构建日志,我可以判断您在xml中的配置是

<exec command="nuget restore packages.config -PackagesDirectory ..\..\packages" workingdir="EMApp\EMApp\EMApp.iOS">
</exec>

这意味着GoCD将尝试执行路径为nuget restore packages.config -PackagesDirectory ..\..\packages的文件,该文件不存在。

GoCD exec任务要求您明确区分流程可执行文件和所有参数。所以上面的nuget示例必须像这样配置:

<exec command="nuget" workingdir="EMApp\EMApp\EMApp.iOS">
   <arg>restore</arg>
   <arg>packages.config</arg>
   <arg>-PackagesDirectory</arg>
   <arg>..\..\packages</arg>
</exec>

有关任务设置的更多提示:

  • 如果nuget.exe不在路径中,则您需要配置完整的文件路径,例如command="C:\nuget\nuget.exe"
  • 这是一篇关于exec tasks
  • 的精彩博文
  • 如果您不想像这样单独设置流程和参数,请尝试启动shell的script executor plugin

编辑1

在mac上你需要用mono运行nuget。所以流程可执行文件是mono

<exec command="mono" workingdir="EMApp\EMApp\EMApp.iOS">
   <arg>/path/to/nuget</arg>
   <arg>restore</arg>
   <arg>packages.config</arg>
   <arg>-PackagesDirectory</arg>
   <arg>..\..\packages</arg>
</exec>