Не знаю, где я это нашел. Но я нашел это в Интернете "где-то".
Это обновит все файлы AssemblyInfo.cs перед сборкой.
Работает как шарм. Все мои exe и dll отображаются как 1.2.3.333 (если в то время SVN-версия была «333».) (А исходная версия в файле 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>
РЕДАКТИРОВАТЬ ------------------------------------------------- -
Вышеупомянутое может перестать работать после того, как ваш номер версии SVN достигнет 65534 или выше.
Видеть:
Отключить предупреждение 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.
person
granadaCoder
schedule
18.09.2012