2009-05-02 4 views
1

저는 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 내가 일반적으로 공통 서비스는 아마 적절한 권한이있는 계정으로 실행되고 있지

답변

1

이것은 NAnt 문제처럼 들리지만, .NET 3.5에는 몇 가지 문제가있었습니다. NAnt의 어떤 버전을 사용하고 있습니까?

또한 Using 0.86 beta 1 for .NET 3.5을 보았습니까? 그 남자는 NAnt에 의해 던져진 동일한 오류 메시지를 가지고있다. 제안 된 솔루션은 최신 야간 빌드를 사용하는 것이 었습니다.

+0

최신 야간 빌드를 사용하여 트릭을 만들었습니다. 진짜 문제는 ccnet.config 파일에서 NAnt의 경로를 하드 코딩하고 최신 빌드를 가리키는 것을 잊었다는 것입니다. 도움을 주신 모든 분들께 감사드립니다! –

2

에서 빌드 스크립트를 실행 동일한 시스템에서 실행되고 있습니다. 동일한 문제가 있는지 확인하려면 명령 줄 (로그온 한 사용자로 실행 됨)을 사용하여 CC를 실행 해 보셨습니까?

+0

좋은 제안, 사실 그것은 이전에 문제가 있었지만 발견하고 수정 한 것이 었습니다. 생각에 감사드립니다. –

관련 문제