MSBuild Community Task library을 사용하여 현재의 SVN 버전을 가져 와서 내 AssemblyInfo 파일에서 최종 컴파일 된 dll 파일의 버전을 가져옵니다.MSBuild 커뮤니티 작업 라이브러리를 사용하여 .NET dll에서 SVN 버전 번호를 올바르게 설정하는 방법
아시다시피 SVN 버전은 수정 사항이있는 경우 "28"또는 "28M"과 같을 수 있습니다. MSBuild 메시지를 출력하고 Revision 속성을 출력하면 수정 후 28M을 얻을 수 있지만 AsseblyInfo를 업데이트 할 때 버전 번호는 28로만 유지됩니다.
버전 번호에 dll이 비 확인 체크인 수정을 사용하여 만들어 졌음을 나타 내기 위해 28M을 갖고 싶습니다. 어떻게 작동시킬 수 있습니까?
<Target Name="Compile">
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="$(SvnTool)">
<Output TaskParameter="Revision" PropertyName="Revision" />
</SvnVersion>
<ItemGroup>
<AssemblyInfoFiles Include="x.a\Properties\AssemblyInfo.cs" />
<AssemblyInfoFiles Include="x.b\Properties\AssemblyInfo.cs" />
</ItemGroup>
<FileUpdate Files="@(AssemblyInfoFiles)"
Regex="(\d+)\.(\d+)\.(\d+)\.(\d+)"
ReplacementText="$(MajorVersion).$(MinorVersion).$(Revision).0" />
<MSBuild Projects="$(MSBuildProjectDirectory)\ConfigExplorer.sln" Targets="Rebuild" Properties="Configuration=$(BuildType);" />
버전 클래스에서 버전이 'int'로 선언되었으므로 28M을 수정 번호로 사용할 수 없습니다 :'public int Revision {get; }'. 그러나 원하는 텍스트를 저장하는 대신 예를 들어 AssemblyInformationalVersionAttribute 특성을 사용할 수 있습니다. –