Каков наилучший способ реализации контроля версий двоичного файла? - PullRequest
0 голосов
/ 11 июня 2009

Я думаю о следующем дизайне:

static class AppVersion
{
     public static string BuildDate 
     {
       get; set;
     }
     public static string Version 
     {
       get; set;
     }
     public static string GetVersion 
     {
       get; set;
     }
}

Несколько вопросов по этому поводу:

  1. Как узнать дату сборки?
  2. Как мне напечатать дату в хорошем формате?
  3. Как получить и распечатать версию Visual Studio в хорошем формате?
  4. Вероятно, плохая идея жестко кодировать версию в двоичный файл, поэтому я поместил версию в информацию о сборке. Как я могу программно получить это?

Ответы [ 4 ]

4 голосов
/ 11 июня 2009

Я думаю, что ваши первые вопросы - дело вкуса. Вы можете использовать String.Format, чтобы получить любой стиль, который вы хотите. По поводу вашего последнего вопроса:

System.Reflection.Assembly.GetExecutingAssembly().Version

возвращает номер версии текущей сборки и:

typeof(SomeTypeInSomeAssembly).Assembly.Version

вернет номер версии сборки, содержащей определенный тип.

1 голос
/ 11 июня 2009

Мы запускаем все наши производственные сборки через CruiseControl.NET, который (помимо прочего) имеет возможность для версий сборок.

Затем у нас есть фрагмент кода, который применяет сгенерированный CC.NET номер сборки (и другие вещи) к AssemblyInfo.cs непосредственно перед передачей компилятору для сборки.

Полагаю, вы могли бы использовать подобную технику для вставки даты сборки в константу в каком-то классе вашего приложения.

1 голос
/ 11 июня 2009

Для даты сборки посмотрите на http://dotnetfreak.co.uk/blog/archive/2004/07/08/determining-the-build-date-of-an-assembly.aspx

Для версии / Get Version смотрите пространство имен System.Reflection.Assembly.

Что касается печати даты в хорошем формате, вам следует либо использовать методы расширения, построенные из класса DateTime, такие как .ToShortDateString () или CultureInfo.

0 голосов
/ 11 июня 2009

Для даты сборки или метки времени вы можете встроить ее в сборку при сборке.
Как это сделать, см. Здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...