nant 작업을 사용하여 빌드 버전을 늘리는 방법은 무엇입니까? 좀 더 구체적으로 어떻게 이것을 assemblyinfo.cs의 버전 번호와 연결시킬 수 있습니까?nant <version> 작업
4
A
답변
8
버전 증가를 관리하기위한 시스템을 고려해야합니다. 이를 수행하는 일반적인 방법 중 하나는 CruiseControl.NET과 같은 지속적인 통합을 사용하는 것입니다. 이 경로를 이동하는 경우, 당신은이 같은 빌드 타겟을 사용할 수 있습니다 CCNetLabel 그것 NANT를 실행할 때 CruiseControl을에서 설정되는 동적 속성입니다
<target name="set.version" description="generates the version number">
<echo message="Setting the build version to ${CCNetLabel}..." />
<attrib file="AssemblyInfo.cs" readonly="false" />
<asminfo output="AssemblyInfo.cs" language="CSharp">
<imports>
<import namespace="System" />
<import namespace="System.Reflection" />
</imports>
<attributes>
<attribute type="AssemblyVersionAttribute" value="${CCNetLabel}" />
<attribute type="AssemblyFileVersionAttribute" value="${CCNetLabel}" />
</attributes>
</asminfo>
<attrib file="AssemblyInfo.cs" readonly="true" />
</target>
합니다.
3
NAnt의 <asminfo>
task은 AssemblyInfo.cs 생성에 도움이됩니다.
3
우리는 TeamCity를 사용하여 NAnt에 버전 번호를 제공합니다. 이 이것은 CommonAssemblyInfo.cs이 솔루션의 모든 프로젝트에 연결해야 지정된 버전으로 파일을 생성
<asminfo output="${solutionDir}/CommonAssemblyInfo.cs" language="CSharp">
<imports>
<import namespace="System" />
<import namespace="System.Reflection" />
</imports>
<attributes>
<attribute type="AssemblyVersionAttribute" value="${version}" />
</attributes>
</asminfo>
.: 같은 버전 번호는 다음 어셈블리 정보에 주입된다.
2
나는
이최고의 예를 들어 파일을 빌드 NANT에서 "어셈블리 정보 섹션"을 복사하는 것입니다
을 (당신이 Github에서 다운로드 할 수 있습니다) 여러 참조 프로젝트 (윈도우 폼, 클래스 라이브러리 및 BatchConsole)를 사용하고 있습니다트릭은 nAnt 대상에서 참조 할 commonAssemblyinfo 파일을 사용할 수 있습니다. NANT 파일에서 목표 아래
는
<target name="create-common-assemblyinfo" if="${create.assemblyinfo}">
<!-- ensure src/CommonAssemblyInfo.cs is writable if it already exists -->
<attrib file="src/CommonAssemblyInfo.cs" readonly="false" if="${file::exists('src/CommonAssemblyInfo.cs')}" />
<!-- generate the source file holding the common assembly-level attributes -->
<asminfo output="src/CommonAssemblyInfo.cs" language="CSharp">
<imports>
<import namespace="System" />
<import namespace="System.Reflection" />
<import namespace="System.Runtime.InteropServices" />
</imports>
<attributes>
<attribute type="ComVisibleAttribute" value="false" />
<attribute type="CLSCompliantAttribute" value="true" />
<attribute type="AssemblyTitleAttribute" value="NAnt" />
<attribute type="AssemblyDescriptionAttribute" value="A .NET Build Tool" />
<attribute type="AssemblyConfigurationAttribute" value="${project.release.type}" />
<attribute type="AssemblyCompanyAttribute" value="http://nant.sourceforge.net" />
<attribute type="AssemblyProductAttribute" value="NAnt" />
<attribute type="AssemblyCopyrightAttribute" value="Copyright (C) 2001-${datetime::get-year(datetime::now())} Gerry Shaw" />
<attribute type="AssemblyTrademarkAttribute" value="" />
<attribute type="AssemblyCultureAttribute" value="" />
<attribute type="AssemblyVersionAttribute" value="${project.version}.${build.number}.0" />
<attribute type="AssemblyInformationalVersionAttribute" value="${project.version}" />
</attributes>
</asminfo>
</target>
관련 문제
- 1. Nant <nant> 조용한 모드에서 작업 하시겠습니까?
- 2. <msbuild> 작업 또는 msbuild.exe에 NAnt?
- 3. CruiseControl/NANT <copy> 작업
- 4. NAnt : 작업 권한이 거부되었습니다.
- 5. 라이센스 :은 NAnt 작업
- 6. Nant 작업 sysinfo 자세한 - 실패합니다.
- 7. NANT 스크립트 작업 크루즈 컨트롤
- 8. .net 4.0 rc로 Nant msbuild 작업 rc
- 9. 기본 NANT 여기에 설명되어있는의 AssemblyName :: 얻을 버전의 기능을 활용합니다 작업
- 10. 더블 건물 NANT 파일
- 11. NAnt 및 ASP.NET 컴파일러
- 12. Nant 코드에서 시작하십시오
- 13. NANT aspnet_compiler.exe는 릴리스 빌드
- 14. NAnt <script> 'Linq'형식의 네임 스페이스가 'System'네임 스페이스에 없습니다.
- 15. Nant <copy> 및 디렉토리 구조를 유지하십시오
- 16. NAnt foreach 루프 폴더 재귀
- 17. NAnt 모범 사례
- 18. Lisp의 Ant (또는 NAnt)
- 19. NAnt 및 빌드 버전
- 20. NANT 빌드 오류 : Cmd
- 21. Nant "nant.onsuccess"속성
- 22. Nant, Booc 및 x64
- 23. NCover로 Nant 빌드 실패
- 24. NAnt 경고 무시
- 25. mkdir nant permissions
- 26. NAnt 및 System.Data.Entity.dll
- 27. CCnet + NAnt 시간 초과
- 28. CruiseControl.net 중복 NAnt 타이밍
- 29. Rhino Mocks nant 오류
- 30. 배치 스크립트로 nant 설치
이 굉장합니다! 하지만 내 스크립트에서 이것을 구현할 때를 이해하지 못합니까? BUILD/COMPILE이 실제로 발생하기 전에이 작업을 수행해야합니까? 이 예제는 단순히 "AssemblyInfo.cs"파일을 생성합니다. 내 솔루션에서 기존 AssemblyInfo.cs 파일을 사용하려면 어떻게해야합니까? 나는 많은 것을 가지고있다. – D3vtr0n
컴파일 대상이 발생하기 전에 수행해야합니다. 기존 AssemblyInfo.cs 파일이 많이있는 솔루션에서이 방법을 사용하는 가장 좋은 방법은 버전 속성 및 솔루션의 다른 공통 정보 (예 : AssemblyVersion, Company 등)를 모두에 포함 된 "GlobalAssemblyInfo.cs"파일로 분리하는 것입니다 솔루션을위한 프로젝트 위의 asminfo 태스크를 수정하여 대신 해당 파일을 수정할 수 있습니다. –
^완전히 효과가있었습니다. 감사! – D3vtr0n