【问题标题】:CruiseControl.Net and NAnt Build ProblemCruiseControl.Net 和 NAnt 构建问题
【发布时间】:2009-05-02 00:38:31
【问题描述】:

我是第一次配置 CruiseControl.net 服务器。我的团队已经使用 NAnt 构建脚本,所以我们只是将服务器指向脚本并让 NAnt 完成所有工作。

如您所见,这很简单:

<project name="ChannelIP">
    <tasks>
        <nant>
            <executable>C:\Program Files\nant-0.86-beta1\bin\nant.exe</executable>
            <baseDirectory>D:\mypath</baseDirectory>
            <buildFile>D:\mypath\myNAnt.build</buildFile>
            <targetList>
                <target>build</target>
            </targetList>
        </nant>
    </tasks>
</project>

问题是我在CC下运行时,出现如下错误:

函数调用失败。 表达: ${framework::get-framework-directory('net-3.5')}/msbuild.exe

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Microsoft .NET Framework 3.5 (net-3.5) 未安装,或不正确 配置。未设置对象引用 到一个对象的实例。

事实上,我确实使用 ${framework::get-framework-directory('net-3.5')} 变量来获取 msbuild.exe 的路径;但是,此代码以前从未失败过。我什至可以使用运行 CC 的用户帐户 RDP 进入服务器并直接运行 NAnt 构建文件,它工作得很好。

为什么这个原本很好的文件在 CC 运行时失败了。

注意 -CC 运行在我通常从中运行构建脚本的同一台机器上

【问题讨论】:

    标签: cruisecontrol.net nant


    【解决方案1】:

    CC 服务可能未在具有适当权限的帐户下运行。您是否尝试过使用命令行(将以登录用户身份运行)运行 CC 以查看是否有同样的问题?

    【讨论】:

    • 好建议,实际上这是我之前遇到的问题,但已经找到并修复了。不过谢谢你的想法。
    【解决方案2】:

    这听起来像是一个 NAnt 问题,它和 .NET 3.5 存在一些问题。您使用的是哪个版本的 NAnt?

    另外,你见过Using 0.86 beta 1 for .NET 3.5吗?这家伙有 NAnt 抛出的相同错误消息。建议的解决方案是使用最新的夜间版本。

    【讨论】:

    • 使用最新的夜间版本就可以了。真正的问题是我在 ccnet.config 文件中硬编码了 NAnt 的路径,而忘记将其指向最新版本。感谢大家的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 2011-10-15
    相关资源
    最近更新 更多