2009-02-06 4 views
0

우리는 MSBuild 스크립트를 호출하는 CruiseControl.NET을 사용하고 있습니다. 빌드 스크립트를 디버깅하는 동안 우리는 끊임없이 작은 변화를 만들고 IIS에서 실행되는 CruiseControl.NET 웹 콘솔을 통해 빌드를 실행합니다. 우리가 테스트를하고 있기 때문에 모든 것이 하나의 컴퓨터에 있습니다.CruiseControl.NET에서 호출 된 MSBuild가 빌드 스크립트 변경을 선택하지 않습니다.

MSBuild 스크립트에서 변경 한 사항 중 일부는 선택되지 않은 것으로 나타났습니다. 때로는 밀어 넣기도하고 때로는 서버가 오래된 버전입니다. 때로는 IIS 서비스를 다시 시작하는 것이 트릭입니다. 때로는 그렇게 작동하지 않습니다.

백그라운드에서 무슨 일이 일어나는지 알고있는 사람이 있습니까? 웹 앱을 위해 정리해야하는 캐시가 있습니까? 어디있을 수 있니?

편집 : 테스트 단계에있는 동안 내 모든 것들이 하나의 컴퓨터에 있습니다. 따라서 소스 제어가 문제가되어야한다고 생각하지 않습니다. 내 ccnet.config는 단순히 MSBuild 대상을 호출합니다. 다음은 간단한 예제는 다음과 같습니다

<project> 
    <tasks> 
     <msbuild> 
      <executable>$(netFrameworkRoot)\MSBuild.exe</executable> 
      <projectFile>C:\MyProject\ProductBuild.proj</projectFile> 
      <targets>BuildProject</targets> 
     </msbuild> 
    </tasks> 
</project> 

ProductBuild.proj 다른 .NET 솔루션을 많이 구축하고 vdproj와 함께 설치 패키지 손 코딩은 MSBuild 스크립트입니다.

CruiseControl에서 빌드를 실행하면 빌드 스크립트의 변경 사항이 적용되지 않는 것으로 보입니다. CCNet 서비스를 다시 시작하는 것이 가장 안전하다고 생각하지만 현재 실행중인 빌드를 방해하지 않기를 바랬습니다.

답변

1

"IIS에서 실행되는 CruiseControl.NET 웹 콘솔을 통해 빌드를 실행하십시오."웹 콘솔은 어떤 건물도 수행하지 않는다는 것을 알고 있습니다. ccnet.exe 또는 ccservice.exe에 메시지를 보냅니다.이 메시지는 포트 21234 (다른 포트에 지정되지 않은 경우)에서 실행 중이며 수신 대기 중입니다.하지만 문제를 해결하기 위해 항상 빌드 프로젝트를 만드십시오. 최근? 원본 컨트롤에 MSBuild 파일이 있습니까? 어떤 소스 컨트롤을 사용하고 있습니까? 빌드 서버의 작업 공간에서 MSBuild 파일을 변경하고 있습니까? 오류를 확인하기 위해 여기에 프로젝트 사본을 게시해야합니다. CruiseCOntrol이 IIS에 관심을 갖고 웹 캐시가 실제 컴파일 작업과 관련이 없다고 말할 수 있습니다. 당신이 구축하고있는 프로젝트에 대해 이야기하지 않는 한 IIS가 필요합니까?

+0

웹 콘솔은 RMI를 통해 작업을 호출하는 것 이외의 다른 작업과 관련이 없어야합니다. 건물을 수행하는 것은 CruiseControl 서비스 그 자체입니다. 따라서 서비스가 캐싱을 수행 할 수 있습니까? 모든 것이 내 로컬 컴퓨터에 있으므로 최신 정보를 받아야 문제가 발생하지 않습니다. – Jeremy