저는 CruiseControl.net 서버를 처음으로 구성합니다. 우리 팀은 이미 NAnt 빌드 스크립트를 사용하므로 서버를 스크립트로 지정하고 NAnt가 모든 작업을 수행하게합니다. 당신이 볼 수 있듯이CruiseControl.Net 및 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에서 그것을 실행할 때, 나는 다음과 같은 오류 얻을 수 있습니다 :
Function call failed. Expression: ${framework::get-framework-directory('net-3.5')}/msbuild.exe
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Microsoft .NET Framework 3.5 (net-3.5) is not installed, or not correctly configured. Object reference not set to an instance of an object.
을 내가 할 사실, msbuild.exe에 대한 경로를 얻으려면 $ {framework :: get-framework-directory ('net-3.5')} 변수를 사용하십시오. 그러나이 코드는 전에 결코 실패하지 않았습니다. CC가 실행중인 사용자 계정을 사용하여 서버에 RDP를 적용하고 NAnt 빌드 파일을 직접 실행하면 정상적으로 작동합니다.
왜 CC가 실행될 때 이처럼 다른 훌륭한 파일도 실패하는 이유는 무엇입니까?
참고 -CC 내가 일반적으로 공통 서비스는 아마 적절한 권한이있는 계정으로 실행되고 있지
최신 야간 빌드를 사용하여 트릭을 만들었습니다. 진짜 문제는 ccnet.config 파일에서 NAnt의 경로를 하드 코딩하고 최신 빌드를 가리키는 것을 잊었다는 것입니다. 도움을 주신 모든 분들께 감사드립니다! –