Автоназначение версии сборки NET

Достаточно долго мучался с версиями сборок (особенно с сервисными сборками) - точнее, с автоназначением их версий. Если сборка на NET, а не Framework.

Спасибо доктору - он показал, что в .csproj достаточно добавить 4 строки:

1
2
3
4
<Deterministic>False</Deterministic>
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
<GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
<AssemblyVersion>1.0.*</AssemblyVersion>

И все, номер сборки и номер ревизии назначаются автоматом. Правда, с мажорными / минорными версиями придется ковыряться вручную ;)

Размещено в .NET · Метки:



Комментарии

Есть 4 коммент. к “Автоназначение версии сборки NET”
  1. drz пишет:

    Билд и ревизию можно опять развернуть в дату время компиляции
    /// Дата сборки
    public string sDateRelis()
    {
    DateTime result = new DateTime(2000, 1, 1);
    result = result.AddDays(iBuild);
    result = result.AddSeconds(iRevision * 2);

    #if DEBUG
    return result.ToString();
    #else
    return result.ToLongDateString();
    #endif
    }
    https://github.com/doctorRaz/Infrastructure-library/blob/main/src/Service/AsmInfo.cs

  2. Кулик Алексей aka kpblc пишет:

    Если честно, сейчас пытаюсь сообразить, что я делал почти две недели назад, и оценить ценность и нужность твоего кода я просто не в силах. Мне кажется, что твой класс как-то не совсем версию файла-то показывает :)

    Пара предложений, если позволишь ;)
    Насколько я помню, у Version тьма переопределений для вывода в строку. И это как бы намек, что (возможно) имеет смысл отказаться от повсеместного применения строк ))
    И я не уверен, что конструкция типа
    public string sDescription => (Attribute.GetCustomAttribute(
    asm,
    typeof(AssemblyDescriptionAttribute),
    false) as AssemblyDescriptionAttribute).Description;

    будет всегда и корректно работать: преобразование в AssemblyDescriptionAttribute может и null вернуть. Так что я б, наверное, делал наподобие
    public string sDescription => (Attribute.GetCustomAttribute(
    asm,
    typeof(AssemblyDescriptionAttribute),
    false) as AssemblyDescriptionAttribute)?.Description ?? string.Empty;

  3. drz пишет:

    Согласен на null проверки нужны
    Код выше вытаскивает из билда дату, из ревизии время компиляции.
    Иногда это удобно при отладке, было у меня отлаживал одно, а грузил другое))

  4. Кулик Алексей aka kpblc пишет:

    Ну, до такого я еще не дорос )))

Поделитесь своим мнением


Я не робот.