2016-03-02 40 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之一中)。衛生署! –