我正在尝试在CCNet上建立一些CCNet构建。我添加了这样一个exec块:
<cb:define name="DnuPackageRestore">
<exec>
<executable>dnu</executable>
<cb:ifdef name="SourceFolder">
<baseDirectory>$(SourceFolder)</baseDirectory>
</cb:ifdef>
<cb:else>
<baseDirectory>$(WorkingPath)\$(ProjectName)</baseDirectory>
</cb:else>
<description>DNU Package Restore</description>
<buildArgs>restore</buildArgs>
</exec>
</cb:define>由于一些奇怪的原因,CCNet对路径中的.cmd文件失败了,所以我将executable从dnu更改为dnu.cmd。它现在运行dnu很好,但是它立即崩溃,说它找不到dnx:
2016-03-02 14:17:19,073 [SuperThing:DEBUG] Starting process [dnu.cmd] in working directory [D:\CI\W\SuperThing] with arguments [restore]
2016-03-02 14:17:19,076 [SuperThing:DEBUG] Not setting PriorityClass on [D:\CI\W\SuperThing\dnu.cmd] to default Normal
2016-03-02 14:17:19,091 [13:DEBUG] [SuperThing dnu.cmd] '"D:\CI\W\SuperThing\dnx"' is not recognized as an internal or external command,
2016-03-02 14:17:19,091 [13:DEBUG] [SuperThing dnu.cmd] operable program or batch file.它声称在SuperThing中寻找dnx,但由于它对dnu.cmd也这么说,我认为这是一条红鲱鱼。
如果我将远程PowerShell作为同一个用户进入服务器,那么一切都正常(我安装了dnvm,让它安装1.0.0-rc1-update1,运行dnvm set default -p)。
CCNet执行这个dnu.cmd的方式似乎有些不稳定,这导致了它的失败(我猜是哪条路迷路了?)。
发布于 2016-03-02 19:05:58
通常,您不能使用标准的.cmd执行“Process.Start”文件(不确定CCNet是否这样做)。相反,您需要使用参数cmd来执行/c [path to cmd file]。也许试一试,看看它能否解决这个问题?
https://stackoverflow.com/questions/35749917
复制相似问题