문제

CruiseControl을 설정하는 동안 게시자 작업에 buildpublisher 블록을 추가했습니다.

<buildpublisher>
  <sourceDir>C:\MyBuild\</sourceDir>
  <publishDir>C:\MyBuildPublished\</publishDir>
  <alwaysPublish>false</alwaysPublish>
</buildpublisher> 

이 방법은 작동하지만 빌드의 전체 파일 내용을 복사합니다. DLL과 .aspx 페이지만 복사하고 싶으므로 게시하는 데 소스 코드가 필요하지 않습니다.

이를 필터링하는 방법을 아는 사람이 있습니까? 아니면 대신 RoboCopy 스크립트를 실행하도록 작업을 설정해야 합니까?

도움이 되었습니까?

해결책

이를 위해 작업을 설정했습니다.CruiseControl을 그렇게 구체적으로 만드는 방법은 없습니다.나는 보통 배치 파일을 연결하여 CC.net 작업에 복사합니다.

다른 팁

웹 프로젝트에 대해서는 잘 모르겠지만 winforms 앱의 경우 다음과 같이 MSBuild 작업에서 TargetOutputs를 가져올 수 있습니다.

<MSBuild Projects="@(VSProjects)"
  Properties="Configuration=$(Configuration)">
  <Output TaskParameter="TargetOutputs" ItemName="BuildTargetOutputs"/>
</MSBuild>

그런 다음 복사하십시오.

<Copy SourceFiles="@(BuildTargetOutputs)" 
  DestinationFolder="bin"
  SkipUnchangedFiles="true" />

웹 프로젝트에 대한 TargetOutputs가 무엇인지는 확실하지 않지만 winforms 및 클래스 라이브러리의 경우 .dll 또는 .exe입니다.

CC.NET의 기본 빌드 게시자는 이를 수행하는 방법을 제공하지 않습니다.몇 가지 옵션이 있습니다:

  • 원하는 기능을 갖춘 나만의 빌드 게시자를 만드세요.
  • 사용자 지정 NAnt/MSBuild 작업 만들기
  • 스크립팅 기술(RoboCopy, 배치 파일 등)을 사용하여 스크립트 파일을 생성하고 CC.NET의 경우 "실행 가능" 작업을 실행하거나 NAnt/MSBuild의 경우 "exec" 작업을 실행합니다.

이를 위해 CC.Net Powershell 작업도 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top