如何在 CCNet 上设置 dnx 构建? dnu 运行但失败 "dnx not found"
How to set up dnx builds on CCNet? dnu runs but fails with "dnx not found"
我正在尝试在 CCNet 上构建一些 ASPNetv5。我添加了一个这样的执行块:
<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>
出于某些 st运行ge 原因,CCNet 无法获取 PATH 中的 .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
的方式似乎有些奇怪,导致它失败(我猜是路径在某处丢失了吗?)。
一般来说,您不能使用标准 Process.Start 执行“.cmd”文件(不确定 CCNet 是否这样做)。相反,您需要使用参数 /c [path to cmd file]
执行 cmd
。也许尝试一下,看看是否能解决问题?
我正在尝试在 CCNet 上构建一些 ASPNetv5。我添加了一个这样的执行块:
<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>
出于某些 st运行ge 原因,CCNet 无法获取 PATH 中的 .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
的方式似乎有些奇怪,导致它失败(我猜是路径在某处丢失了吗?)。
一般来说,您不能使用标准 Process.Start 执行“.cmd”文件(不确定 CCNet 是否这样做)。相反,您需要使用参数 /c [path to cmd file]
执行 cmd
。也许尝试一下,看看是否能解决问题?