Не знаю, где я нашел это. Но я нашел это в Интернете «где-то».
Это обновление всех файлов AssemblyInfo.cs до сборки.
Работает как очарование. Все мои exe и dll отображаются в виде 1.2.3.333 (если «333» были версией SVN в то время.) (И исходная версия в файле AssemblyInfo.cs была указана как «1.2.3.0»)
$ (ProjectDir) (Где мой .sln файл находится)
$ (SVNToolPath) (указывает на svn.exe)
мои пользовательские переменные, их декларации/определения не определены ниже.
http://msbuildtasks.tigris.org/ и/или https://github.com/loresoft/msbuildtasks имеет задачи (FileUpdate и SvnVersion).
<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 --------------------------------------- -----------
Вышеуказанное может начать сбой после того, как ваш номер версии SVN достигнет 65534 или выше.
См:
Turn off warning CS1607
Вот обходной путь.
<FileUpdate Files="@(AssemblyInfoFiles)"
Regex="AssemblyFileVersion\("(\d+)\.(\d+)\.(\d+)\.(\d+)"
ReplacementText="AssemblyFileVersion("$1.$2.$3.$(SubVersionRevision)" />
Результатом этого должно быть:
В Windows/Проводнике // Файл/Свойства .......
Версия сборки будет 1.0.0.0.
Версия файла будет 1.0.0.333, если 333 является версией SVN.
+1 Удивительно, это мне очень помогло. Я обновил вашу версию для NAnt, чтобы также обновить AssemblyFileVersion и некоторые незначительные вещи. Он включен в качестве другого ответа здесь, в этой теме. Благодаря! – galaktor 2009-09-12 10:02:07
Другие не должны отказываться от этого оговорки; это очень важно. В результате в Интернете есть много ответов, в которых говорится, что это не работает. Все еще кажется багги, но триггер, который строится на чеке, и все работает так, как ожидается, после этого. - Спасибо, связка – Chuck 2012-05-10 18:58:47