我是第一次配置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 ^ MicrosoftNetFramework3.5(Net3.5)没有安装,也没有正确配置。对象引用未设置为对象的实例。
实际上,我确实使用${framework::get-framework-directory('net-3.5')}变量获取到msbuild.exe的路径;但是,这段代码以前从未失败过。我甚至可以使用CC正在运行的用户帐户进入服务器,并直接运行NAnt构建文件,并且运行得很好。
为什么只有在CC运行时,这个很好的文件才会失败。
注意,-CC运行在我通常运行构建脚本的同一台机器上。
发布于 2009-05-03 05:49:11
这听起来像是一个NAnt问题,它和.NET 3.5有一些问题。您使用的是哪个版本的NAnt?
还有,你见过在.NET 3.5中使用0.86 beta 1吗?这个家伙有NAnt抛出的同样的错误信息。建议的解决方案是使用最新的夜间构建。
发布于 2009-05-02 01:58:13
CC服务可能没有在具有适当权限的帐户下运行。您是否尝试过使用命令行(将以登录用户的身份运行)运行CC以查看是否有相同的问题?
https://stackoverflow.com/questions/813831
复制相似问题