2

我有一个项目,我的代理确实安装了 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.
4

2 回答 2

1

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

于 2017-04-24T15:30:00.180 回答
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,该文件不存在。

GoCDexec任务要求您显式分离进程可执行文件和所有参数。所以上面的 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不在 PATH 中,则需要配置完整的文件路径,例如command="C:\nuget\nuget.exe"
  • 这是一篇关于exec 任务的不错的博客文章
  • 如果您不喜欢像这样单独设置进程和参数,请尝试脚本执行器插件,该插件将启动一个 shell。

编辑 1

在 mac 上,您需要使用单声道运行 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>
于 2017-05-02T08:25:33.950 回答