2016-03-02 80 views
1

我试图在CCNet上建立一些ASPNetv5构建。我加了这样一个exec块:如何在CCNet上设置dnx构建? dnu运行但“Dnx找不到”

<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未能在PATH .cmd文件的,所以我改变executablednudnu.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导致它失败(我的猜测是PATH在某处失去了?),看起来有些不可思议。

+0

是否将'dnu'添加到路径中?如果没有,你可以在运行'dnu'之前运行'dnvm upgrade/install'吗? –

+0

它是在路径 - 远程PoSh和通过RDPas登录这个用户这两个命令都正常工作。按照Andrew Nurse的建议解决问题(我曾尝试过这样做,因为我们有其他命令,但显然我没有做到这一点!) –

回答

1

通常,您不能使用标准Process.Start执行“.cmd”文件(不知道CCNet是否这样做)。相反,您需要使用参数/c [path to cmd file]来执行cmd。也许尝试一下,看看它是否能解决问题?

+0

呃...我确信我昨天试过了,想过它与添加“.cmd”的结果相同(例如,第一个 - dnu.cmd - 工作,但之后它崩溃调用dnx)。然而,我只是再试一次,它已经工作了......我怀疑也许我误解了错误,并且在重新启动CCNet之前做了这些(因此它没有更新的路径,并且崩溃在dnu上,而不是dnx上)。谢谢! :) –

+0

刚刚检查了我的支票......我错过了昨天在这一个参数上的/ C(尽管它在NPM之一中)。卫生署! –