CruiseControl.Net和NAnt构建问题

时间:2009-05-02 00:38:32

标签: cruisecontrol.net nant

我是第一次配置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下运行时,我收到以下错误:

  

功能调用失败。   表达:   $ {框架::获得的框架的目录( '净-3.5')} / msbuild.exe

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

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

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

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

请注意 -CC正在我通常从

运行构建脚本的同一台机器上运行

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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