kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
Adam Haile
Adam Haile
Вопрос

SVN Revision Version в .NET Assembly w/ out CC.NET

Есть ли способ включить номер ревизии репозитория SVN в строку версии сборки .NET? Что-то вроде Major.Minor.SVNRev

Я'видел упоминание о том, что это можно сделать с помощью чего-то вроде CC.NET (хотя на самом деле на ASP.NET), но есть ли способ сделать это без дополнительного программного обеспечения? Я'раньше делал подобное в C/C++, используя пакетные скрипты сборки, но это достигалось чтением номера версии, затем скрипт каждый раз записывал файл под названием "ver.h" с чем-то вроде:

#define MAJORVER 4
#define MINORVER 23
#define SOURCEVER 965

Затем мы использовали эти определения для генерации строки версии.

Возможно ли нечто подобное для .NET?

26 2008-08-15T12:15:31+00:00 8
 DevelopingChris
DevelopingChris
Редактировал вопрос 18-го августа 2008 в 6:34
Программирование
versioning
svn
.net
R. Schreurs
R. Schreurs
7-го января 2013 в 12:01
2013-01-07T12:01:10+00:00
Дополнительно
Источник
Редактировать
#8415842

Here' s и пример C# для обновления информации о пересмотре на собрании автоматически. Это основано на ответе Уилла Дина, который не очень тщательно продуман.

Пример:

  1. Скопируйте AssemblyInfo.cs к AssemblyInfoTemplate.cs в project' s папка Properties.
  2. Изменитесь , строят действие к ни один для AssemblyInfoTemplate.cs.
  3. Измените линию с AssemblyFileVersion к:

' [собрание: AssemblyFileVersion (" 1.0.0. $WCREV$ ")]'

  1. Рассмотрите добавление:

' [собрание: AssemblyInformationalVersion (" Постройте дату: $WCNOW = % % Y-m-% d %H: % M: S$ %; дата Пересмотра: $WCDATE = % % Y-m-% d %H: % M: S$ %; Пересмотр (пересмотры) в рабочей копии: $WCRANGE$$WCMODS?; ПРЕДУПРЕЖДАЯ работающий у копии были нейтральные модификации: $.")]',

который сообщит подробности о статусе пересмотра источника, которым было собрание, строят из.

  1. Добавьте, что следующее Предварительно строит событие к свойствам файла проекта:

'subwcrev " $ (SolutionDir)." " $ (ProjectDir)Properties\AssemblyInfoTemplate.cs" " $ (ProjectDir)Properties\AssemblyInfo.cs"-f'

  1. Считайте добавление AssemblyInfo.cs к svn черному списку. Числа пересмотра, которыми заменяют, и даты изменят файл, который приводит к незначительным изменениям и пересмотрам, и $WCMODS$ оценит к истинному. AssemblyInfo.cs должен, конечно, быть включен в проект.

В ответ на возражения Вимом Кененом я заметил, что, в отличие от того, что было предложено Дэррилом, AssemblyFileVersion также делает не числа поддержки выше 2^16. Строить закончит, но собственность Версия Файла на фактическом собрании будет модулем AssemblyFileVersion 65536. Таким образом, 1.0.0.65536, а также 1.0.0.131072 уступит 1.0.0.0, и т.д. В этом примере в собственности AssemblyInformationalVersion всегда есть истинное число пересмотра. Вы могли не учесть шаг 3, если Вы считаете это значительной проблемой.

Отредактируйте: некоторая дополнительная информация, используя это решение некоторое время.

  1. Это теперь использует AssemblyInfo.cst, а не AssemblyInfoTemplate.cs, потому что это будет автоматически иметь , Строят Действие выбор Ни один, и это не загромоздит Вас Ошибочный список, но you' ll освобождают выдвижение на первый план синтаксиса.

  2. I' ve добавил два теста к моим файлам AssemblyInfo.cst:

    #if (! ОТЛАДКА)    
        $WCMODS? #error, Работающий, у копии есть нейтральные модификации, пожалуйста, передайте, все модификации прежде, чем создать выпуск строят.: $ 
    #endif 
    #if (! ОТЛАДКА)       
        $WCMIXED? #error, Работающий, у копии есть несколько пересмотров, пожалуйста, обновите к последнему пересмотру прежде, чем создать выпуск, строят.: $ 
    #endif

    Используя это, Вы должны будете обычно выполнять полное Обновление SVN после передавания и прежде чем Вы сможете сделать, успешный выпуск строит. Иначе $WCMIXED будет верен. Это, кажется, вызвано тем, что преданное ре файлов в главном пересмотре после передавания, но других файлов нет.

  3. У меня были некоторые сомнения ли первый параметр к subwcrev, " $ (SolutionDir)" который устанавливает объем для проверки svn информация о версии, действительно всегда работает, как желаемый. Возможно, это должен быть $ (ProjectDir), если Вы довольны, если каждое отдельное собрание находится в последовательном пересмотре.

Дополнение Чтобы ответить на комментарий @tommylux.

SubWcRev может использоваться для любого файла в Вас проект. Если Вы хотите показать информацию о пересмотре в веб-странице, Вы могли бы использовать этот шаблон VersionInfo:

public class VersionInfo
{       
    public const int RevisionNumber = $WCREV$;
    public const string BuildDate = "$WCNOW=%Y-%m-%d %H:%M:%S$";
    public const string RevisionDate = "$WCDATE=%Y-%m-%d %H:%M:%S$";
    public const string RevisionsInWorkingCopy = "$WCRANGE$";
    public const bool UncommitedModification = $WCMODS?true:false$;
}

Добавьте предварительно построить событие точно так же, как то для AssemblyInfo.cst, и у Вас будет легкий доступ ко всей соответствующей информации о SubVersion.

R. Schreurs
R. Schreurs
Редактировал ответ 22-го сентября 2017 в 11:02
29
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
Wim Coenen
Wim Coenen
17-го марта 2009 в 1:51
2009-03-17T13:51:17+00:00
Дополнительно
Источник
Редактировать
#8415839

Это возможно, но Вы shouldn' t: компоненты последовательности собрания вариантов ограничены 16-битными числами (макс. 65535). Числа пересмотра подрывной деятельности могут легко стать больше, чем это так в какой-то момент, компилятор внезапно собирается жаловаться.

10
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
Решение / Ответ
Will Dean
Will Dean
15-го августа 2008 в 12:29
2008-08-15T12:29:04+00:00
Дополнительно
Источник
Редактировать
#8415834

Загляните на сайт SubWCRev - http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html

Номера версий сборок обычно находятся в файле assemblyinfo.cs

6
0
Анонимный пользователь
17-го марта 2009 в 8:21
2009-03-17T08:21:08+00:00
Дополнительно
Источник
Редактировать
#8415838

Читайте/просматривайте этих докторов:

[Получая доступ к хранилищу Подрывной деятельности от.NET использование DotSVN] [1]

Как к: напишите задачу

Вставьте версию SVN и Постройте число в Вашем файле C# AssemblyInfo

Собирая приложения с таможенными задачами для Microsoft Build Engine

MSBuildCommunityTasks svnversion, упомянутый в третьей ссылке, не выступил бы с svn на Mac 10.5.6, и проект VS2008 C# строят внутренние Параллели, принимающие Vista (т.е., через OS).

Напишите свою собственную задачу восстановить пересмотр от использования хранилища DotSVN:

using System;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using DotSVN.Common;
using DotSVN.Common.Entities;
using DotSVN.Common.Util;
using DotSVN.Server.RepositoryAccess;

namespace GetSVNVersion
{
    public class GetRevision : Task
    {
        [Required]
        public string Repository { get; set; }
        [Output]
        public string Revision { get; set; }

        public override bool Execute()
        {
            ISVNRepository repo;
            bool connected = true;
            try
            {
                repo = SVNRepositoryFactory.Create(new SVNURL(Repository));
                repo.OpenRepository();
                Revision = repo.GetLatestRevision().ToString();
                Log.LogCommandLine(Repository + " is revision " + Revision);
                repo.CloseRepository();
            }
            catch(Exception e)
            {
                Log.LogError("Error retrieving revision number for " + Repository + ": " + e.Message);
                connected = false;
            }
            return connected;
        }
    }
}

Этот путь позволяет пути хранилища быть " file:///Y:/repo" где Y: каталог Mac, нанесенный на карту в Vista.

[1]: http://www.codeproject.com/KB/library/subversion_using_dotsvn.aspx? display=PrintAll

5
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
 Tim
Tim
11-го февраля 2012 в 2:40
2012-02-11T02:40:58+00:00
Дополнительно
Источник
Редактировать
#8415841

Другой ответ упомянул, что число пересмотра SVN не могло бы быть хорошей идеей из-за ограничения на размер числа.

Следующая ссылка обеспечивает не только число пересмотра SNV, но также и шаблон информации о версии даты.

Добавление этого к.NET проекту просто - очень мало работы должно быть сделано.

Вот проект GitHub, который обращается к этому https://github.com/AndrewFreemantle/When-The-Version/downloads

Следующий URL может медленно загружать, но является постепенным объяснением того, как сделать эту работу (легкие и короткие 3 или 4 шага)

http://www.fatlemon.co.uk/2011/11/wtv-automatic-date-based-version-numbering-for-net-with-whentheversion/

 Tim
Tim
Редактировал ответ 11-го февраля 2012 в 3:00
4
0
Eric Schoonover
Eric Schoonover
12-го сентября 2008 в 5:48
2008-09-12T05:48:31+00:00
Дополнительно
Источник
Редактировать
#8415837

Если вы хотите обновить номер версии в проекте AssemblyInfo.cs, вам может быть интересна эта статья:

CodeProject: Использование номеров ревизий Subversion в проектах Visual Studio

Если вы включите SVN Keywords, то каждый раз, когда вы проверяете проект, Subversion сканирует ваши файлы на наличие определенных "ключевых слов" и заменяет ключевые слова некоторой информацией.

Например, в верхней части моих исходных файлов я бы создал заголовок, содержащий следующие ключевые слова:

'$Author:$ '$Id:$ '$Rev:$

Когда я проверяю этот файл в Subversion, эти ключевые слова заменяются на следующие:

'$Author: paulbetteridge $ '$Id: myfile.vb 145 2008-07-16 15:24:29Z paulbetteridge $ '$Rev: 145 $

2
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
 DevelopingChris
DevelopingChris
15-го августа 2008 в 1:51
2008-08-15T13:51:52+00:00
Дополнительно
Источник
Редактировать
#8415836

svn info сообщает вам версию, на которой вы находитесь, вы можете сделать событие "предварительной сборки" в VS для вашего проекта, чтобы сгенерировать assemblyinfo.cs, запустив svn info и разобрав его результаты с помощью домашнего приложения командной строки.

Я уже делал это раньше, но быстро переключился на то, чтобы ccnet просто передавал его как переменную в nant.

2
0
 ferventcoder
ferventcoder
8-го июня 2009 в 4:34
2009-06-08T16:34:24+00:00
Дополнительно
Источник
Редактировать
#8415840

Вы можете использовать совместно использованный файл Ассамблеи Вариантов, на который Вы можете сослаться во всех Ваших проектах.

Апперкот делает это - [http://ferventcoder.com/archive/2009/05/21/uppercut---автоматизированный - строит---versionbuilder.aspx] [2]

Это даст Вам общее представление о том, что Вы можете сделать, чтобы получить версии на Ваших собраниях.

[2]: http://ferventcoder.com/archive/2009/05/21/uppercut---автоматизированный - строит---versionbuilder.aspx

0
0
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
Похожие сообщества 12
DotNetRuChat
DotNetRuChat
6 704 пользователей
Чат русскоязычного .NET сообщества http://dotnet.ru/ Правила: https://t.me/DotNetRuChat/704399 Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia, @DotNetRuJobs, @uwp_ru Флуд в @dotnettalks
Открыть telegram
Вакансии .NET
Вакансии .NET
4 075 пользователей
Правила: https://t.me/DotNetRuJobs/123 Канал с вакансиями - https://t.me/DotNetRuJobsFeed Вам могут быть интересны: @dotnetruchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia Флуд в @dotnettalks Стажировки: #большой_пост_о_стажировках
Открыть telegram
pro.net (former COM+)
pro.net (former COM+)
1 902 пользователей
Обсуждение .NET и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). https://t.me/pro_net/34653 Флудилка: @dotnettalks
Открыть telegram
var chat = new Chat();
var chat = new Chat();
1 630 пользователей
Обсуждение .NET / C# / F# Обсуждение Azure — @azurechat Прочие обсуждения – https://t.me/+zwxI91RGG6s2YzAy
Открыть telegram
.NET Talks - День сурка
.NET Talks - День сурка
1 355 пользователей
Свободный чат .NET разработчиков. Правила: https://t.me/dotnettalks/548269 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @DotNetRuJobs, @uwp_ru, @AvaloniaRu, @dotnettalksenglish
Открыть telegram
Чат конференции DotNext
Чат конференции DotNext
1 080 пользователей
Канал конференции: @dotnext_channel Ближайшая конференция — SmartData 2024, даты будут анонсированы позднее Саппорт: @JUGConfSupport_bot
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Andrei Kalinin
Зарегистрирован 2 недели назад
2
Koroleva Ego
Зарегистрирован 1 месяц назад
3
Star Lenon
Зарегистрирован 1 месяц назад
4
Данил Жевнеров
Зарегистрирован 1 месяц назад
5
Анна Литвиненко
Зарегистрирован 2 месяца назад
Хотите что-то узнать? Задавайте Ваш вопрос на нашем сайте
ru.kzen.dev
ID
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией