Keine Ahnung, wo ich das gefunden habe. Aber ich habe das im Internet "irgendwo" gefunden.
Dies aktualisiert alle AssemblyInfo.cs-Dateien, bevor der Build stattfindet.
Funktioniert wie ein Charme. Alle meine exe und DLL zeigen sich als 1.2.3.333 (Wenn „333“ waren die SVN Revision zu der Zeit.) (Und die ursprüngliche Version in der AssemblyInfo.cs-Datei wurde aufgeführt als „1.2.3.0“)
$ (ProjectDir) (Wo ist meine SLN-Datei befindet)
$ (SVNToolPath) (Punkte svn.exe)
sind meine benutzerdefinierten Variablen, ihre Erklärungen/Definitionen sind nicht unten definiert.
http://msbuildtasks.tigris.org/ und/oder https://github.com/loresoft/msbuildtasks die (Fileupdate und svnversion) Aufgaben.
<Target Name="SubVersionBeforeBuildVersionTagItUp">
<ItemGroup>
<AssemblyInfoFiles Include="$(ProjectDir)\**\*AssemblyInfo.cs" />
</ItemGroup>
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="$(SVNToolPath)">
<Output TaskParameter="Revision" PropertyName="MySubVersionRevision" />
</SvnVersion>
<FileUpdate Files="@(AssemblyInfoFiles)"
Regex="(\d+)\.(\d+)\.(\d+)\.(\d+)"
ReplacementText="$1.$2.$3.$(MySubVersionRevision)" />
</Target>
EDIT --------------------------------------- -----------
Der obige Fehler kann auftreten, nachdem die SVN-Revisionsnummer 65534 oder höher erreicht hat.
Siehe:
Turn off warning CS1607
Hier ist die Abhilfe ist.
<FileUpdate Files="@(AssemblyInfoFiles)"
Regex="AssemblyFileVersion\("(\d+)\.(\d+)\.(\d+)\.(\d+)"
ReplacementText="AssemblyFileVersion("$1.$2.$3.$(SubVersionRevision)" />
Das Ergebnis sollte sein:
In Windows/Explorer // Datei/Eigenschaften .......
Assembly Version wird 1.0.0.0 sein.
Die Dateiversion lautet 1.0.0.333, wenn 333 die SVN-Revision ist.
+1 Super, das hat mir sehr geholfen. Ich aktualisierte Ihre Version für NAnt, um auch die AssemblyFileVersion und einige kleinere Dinge zu aktualisieren. Es ist als eine andere Antwort hier in diesem Thread enthalten. Vielen Dank! – galaktor
Andere sollten diesen Vorbehalt nicht ablehnen; es ist sehr wichtig. Als Ergebnis gibt es viele Antworten auf den Webseiten, die sagen, dass dies nicht funktioniert. Scheint immer noch fehlerhaft, aber triggern, dass Build auf einen Check-in einmal und alles funktioniert wie erwartet danach. - Vielen Dank – Chuck
Der Link zum Assembly Version Labeller ist defekt. – stephen