Sto usando il MSBuild Community Task library per ottenere la versione SVN corrente un set che nei miei file AssemblyInfo per ottenere la revisione nella dll compilata finale.Come impostare il numero di versione SVN su dll .NET utilizzando la libreria di attività di MSBuild Task
Come sapete, la versione SVN può essere come "28" o "28M" - se ci sono modifiche. Se faccio un messaggio MSBuild e restituisco la proprietà Revision, vedo che ottengo un 28M dopo la modifica, ma quando aggiorno AsseblyInfo continuo a ricevere solo 28 nel numero di versione ..?
Mi piacerebbe avere il 28M nel numero di versione per indicare che la DLL è stata creata utilizzando una modifica non in check-in. Come posso farlo funzionare?
<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);" />
Non è possibile avere 28M come numero di revisione perché la revisione è dichiarata come 'int' nella classe Versione : 'public int Revision {get; } '. Ma puoi usare, ad esempio, attributo AssemblyInformationalVersionAttribute per memorizzare qualsiasi testo che ti piace. –