저는 CruiseControl.NET 및 nAnt를 시작하면서 전체 프로세스가 어떻게 작동하는지 잘 이해하지 못합니다. 우리는 현재 Visual Source Safe에서 대부분의 솔루션을 보유하고 있으며 AssemblyInfo 파일을 사용하여 각 릴리스를 자동으로 빌드 서버 레이블로 만듭니다.CruiseControl을 사용하여 헤드 SVN 폴더를 Release 폴더로 복사
우리는 VSS 프로젝트를 SVN으로 마이그레이션하고 그에 따라 프로젝트 빌드 파일을 수정하여 SVN 저장소를 체크 아웃하고 업데이트합니다. 우리가 달성하기를 원하는 것은 소스 컨트롤에 소스의 사본을 갖고, 배포되는 프로젝트의 버전과 정확하게 일치시키는 것입니다.
우리의 SVN 따라서 설정 :
svn://solution/
TRUNK/
RELEASES/
1.0.0/
1.2.0/
BRANCHES/
을 그래서 우리는 1.3.0로 설정된 어셈블리 정보 버전, 우리의 솔루션을 구축 강제로 할 때, 우리는 빌드 서버가 자료로, 트렁크 디렉토리를 복사 할 /1.3.0/ 디렉토리.
SVN 명령은 매우 간단합니다. svn copy src/directory dst/디렉토리. 그러나이 명령을 어디에 넣을 것이며 대상의 버전 번호를 얻으려면 어떻게해야합니까? 우리가이 프로젝트 .build 파일에서
<sourcecontrol type="svn">
<trunkUrl>svn://project/trunk</trunkUrl>
<workingDirectory>D:\Builds\project\Src</workingDirectory>
<executable>C:\Subversion\bin\svn.exe</executable>
<username>sf_service_dev</username>
<password>SFx4vi-r</password>
<tagOnSuccess>true</tagOnSuccess>
<cleanCopy>true</cleanCopy>
</sourcecontrol>
(많은 물론 많은) :
<target name="Deploy_Release">
<property name="fileandpathformyfile" value="${CCNetWorkingDirectory}\Bin\project.exe"/>
<echo message="fileandpathformyfile is ${fileandpathformyfile}."/>
<property name="ReleaseNumber" value="${fileversioninfo::get-file-version(fileversioninfo::get-version-info(fileandpathformyfile))}"/>
<echo message="ReleaseNumber has been detected to be ${ReleaseNumber}."/>
<!--Use version as needed-->
<!--Create the release direcory-->
<mkdir dir="${CCNetWorkingDirectory}\..\Releases\${ReleaseNumber}"/>
<!--Copy stuff to the release directory-->
<copy todir="${CCNetWorkingDirectory}\..\Releases\${ReleaseNumber}">
<fileset basedir="${CCNetWorkingDirectory}\bin">
<include name="*.dll" />
<include name="*.exe" />
<include name="*.config" />
<include name="*.xml" />
<include name="*.stp" />
</fileset>
</copy>
</target>
빌드 서버에서
,이 .xml 파일의 예입니다
$ {trunkURL} /../ releases/$ {ReleaseNumber}로 $ {trunkURL}을 복사하기 위해 SVN 명령을 실행하려면 어떻게해야하고 어떤 파일을 사용합니까? 내가 지금 이해하는 방법은 .build 파일에서 .xml 파일로 ReleaseNumber를 가져 와서 거기서부터 실행해야합니다. 또는 .XML에서 .build로 trunkURL을 전달하고 .build 파일에서 svn 명령을 실행해야합니다.
도와주세요!
nAnt를 잠시 사용 해본 적이 있습니까? 아니면 CC.Net과 nAnt를 동시에 사용하셨습니까? 왜 당신이 msbuild를 사용하지 않는지 궁금하다. – Ryu
나는 둘 다 동시에 사용하기 시작했습니다. 이전 프로젝트의 경우 로컬 컴파일, 프로덕션 SOA 테스트 및 배포를 수행합니다. –