우리는 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 서비스를 다시 시작하는 것이 가장 안전하다고 생각하지만 현재 실행중인 빌드를 방해하지 않기를 바랬습니다.
웹 콘솔은 RMI를 통해 작업을 호출하는 것 이외의 다른 작업과 관련이 없어야합니다. 건물을 수행하는 것은 CruiseControl 서비스 그 자체입니다. 따라서 서비스가 캐싱을 수행 할 수 있습니까? 모든 것이 내 로컬 컴퓨터에 있으므로 최신 정보를 받아야 문제가 발생하지 않습니다. – Jeremy