Używam MSBuild Community Task library, aby uzyskać aktualną wersję SVN, że w moich plikach AssemblyInfo, aby uzyskać wersję w ostatecznej skompilowanej dll.Jak ustawić numer wersji SVN na .NET dll przy użyciu biblioteki zadań MSBuild Community
Jak wiadomo, wersja SVN może wyglądać jak "28" lub "28M" - jeśli są modyfikacje. Jeśli robię wiadomość MSBuild i wyprowadzam właściwość wersji widzę, że dostaję 28M po modyfikacji, ale przy aktualizacji AsseblyInfo ciągle otrzymuję tylko 28 w numerze wersji ..?
Chciałbym mieć 28M w numerze wersji, aby wskazać, że biblioteka dll została zbudowana przy użyciu modyfikacji niezweryfikowanej. Jak mogę to sprawić?
<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);" />
Nie można mieć 28M jako numeru wersji, ponieważ rewizja jest zadeklarowana jako "int" w klasie wersji : 'public int Revision {get; } '. Ale zamiast tego możesz użyć atrybutu AssemblyInformationalVersionAttribute do przechowywania dowolnego tekstu, który ci się podoba. –