1

我正在从 CCnet 移植 MSBuild 脚本以在 Jenkins 中运行。MSBuild 项目用于创建部署包。我宁愿让詹金斯自己推动这个过程,但这是一个长期目标。

我遇到的问题是(如标题所示)当我们尝试使用 HgPull 目标时,从 MSBuild mecurial 任务(http://msbuildhg.codeplex.com/)我们收到错误消息

HgProcessException:命令 hg.exe 不可用 [项目路径]

我在项目网站上看到有人通过将 LibraryLocation 属性添加到目标来解决它,但这似乎没有任何区别。我的目标目前看起来像这样:

目标名称="UpdateSources">

<HgPull
        LibraryLocation="C:\Program Files\TortoiseHg\hg.exe"
        Force="true"
        Update="true"
        LocalPath="$(SourcePath)" 
        />

<HgUpdate
        LibraryLocation="C:\Program Files\TortoiseHg\hg.exe"
        Clean="true"
        LocalPath="$(SourcePath)" 
        />

我比较茫然。如果您需要在这篇文章中添加更多信息来解决这个问题,请告诉我。我对 MSBuild 真的很陌生,所以真的不知道从哪里开始调查这个问题。

编辑:

我忘记提到的一件事是,我尝试在构建服务器的控制台窗口中运行 MSbuild 命令,但仍然得到相同的结果。这真的很奇怪,因为它在 CCNet 中运行良好,CCNet 做了什么魔法来使这个命令工作?

4

2 回答 2

1

现在已经解决了,不幸的是我不确定我做了哪些更改来纠正这些问题。我相信这可能取决于路径分隔符以及它们是否在配置文件的另一部分中。这让我很恼火,因为应用程序之间缺乏弹性/一致性,您需要指定带/不带斜杠的路径。

于 2013-04-03T13:59:35.923 回答
0

只是一个想法,但尝试将“C:\Program Files\TortoiseHg”添加到您的系统路径。也许 CCNet 指定了 Jenkins 无法访问的某个地方。

另外,为了理智起见,请验证 hg.exe 是否确实存在于该位置。

于 2013-03-15T13:02:25.940 回答