2013-07-18 2 views
2

Я разрабатываю приложение C# .net в visual studio, которое я контролирую версию с черепаховой SVN.Как связать версии программного обеспечения с черепаховыми версиями svn

Мой вопрос заключается в следующем: Есть ли способ, я могу связать версию сборки моего основного проекта, например:

[assembly: AssemblyVersion("2.2.3.4")] 

К числу пересмотра в Tortoise SVN.

Таким образом, я могу проверить версию 2.2.3.4 непосредственно, а не проверять, например. ревизия 52 (или какая-либо ревизия равна версии 2.2.3.4).

Это облегчило бы меня, когда я попытаюсь получить конкретную версию своей программы, поскольку мне не нужно выяснять, какой номер версии SVN равен номеру версии программного обеспечения, которое я ищу.

Thanks

+0

Вы можете установить последний номер версии на номер ревизии. Таким образом, 2.2.3.1463 укажет на ревизию 1463. Но я не знаю максимального предела номера версии. В NAnt есть команда манипулировать AssemblyInfo.cs, очень удобная для этого случая, когда у вас есть NAnt и сервер сборки ... –

ответ

5

Добавить Version.cs.tpl файл в свой проект с содержанием, как это:

namespace Versioning 
{ 
    public static class VersionInfo 
    { 
     public const string Version = "2.2.3.$WCREV$"; 
    } 
} 

Добавить событие до сборки для вашего проекта:

SubWCRev.exe "$(SolutionDir)\" "$(ProjectDir)Version.cs.tpl" "$(ProjectDir)Version.cs" -f 

Создание проекта. Version.cs будет создан в папке проекта, добавьте его в проект. Теперь вы можете изменять свой AssemplyInfo.cs так:

[assembly: AssemblyVersion(Versioning.VersionInfo.Version)] 

SubWCRev.exe является инструментом в папке программы Черепахи (http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html). Он должен быть доступен (например, установлен в переменной PATH). Теперь каждый раз, когда изменяется изменение вашего проекта, оно будет отражено в версии вашей сборки после сборки.

Кажется, что это также применимо к вашему сообщению: Linking Tortoise SVN revision number to assembly version

+0

+1 Это отличное решение, только проблема заключается в том, что разработчик не создает или не получает последний перед регистрацией. – Matthew

+0

Результирующая версия.cs не должна быть проверена, это сгенерированный файл. Когда вы строите, вы получаете штампы с вашей текущей ревизией проверки, это достаточно справедливо ... –

+0

@Matthew: опция -m опции SubWCVer, если рабочая копия имеет смешанные версии. Я думаю, это можно использовать для решения проблемы, о которой вы говорили. – Jeevaka

0

Почему бы не назвать отрасль, используя номер версии?

Вы можете использовать tags и называть каждый тег версией ... но пометка в основном предназначена для отложенных ветвей.

Или вы можете использовать commit hook, чтобы добавить номер версии к каждому сообщению фиксации и найти журнал TortoiseSVN для этого и проверить там.

Смежные вопросы