Семантическое управление версиями Asp.Net 5

Похоже, управление версиями работает иначе, чем в предыдущих версиях .Net. Project.json, кажется, использует семантическое управление версиями (из того, что я видел в Интернете) с форматом Major.Minor.Patch-Special.

  1. Заменяет ли это идею версии сборки или дополняет ее? Или он просто привыкает к Nuget.
  2. Как получить доступ к версии во время выполнения. Я наткнулся на объект Nuget.SemanticVersion онлайн в пакете Microsoft.Framework.Runtime, но не могу понять, как получить его в коде.
  3. Есть ли программный способ обновить это значение в сборке или только в пользовательских сценариях?

person Gekctek    schedule 05.08.2015    source источник


Ответы (1)


Я бы не сказал, что версионирование сильно изменилось. В номере версии xyz «x» означает «большие изменения / критические изменения», «y» означает «незначительные дополнения и исправления», а «z» означает «очень незначительные исправления». Это довольно близко к тому, что утверждает Semantic Versioning (SemVer).

В проекте на основе project.json есть только одно место для указания версии — в самом файле project.json. Эта версия является SemVer (например, x.y.z-prerel) и используется для версии пакета NuGet и версии сборки, и информационной версии сборки. Если вы явно задали версию сборки или информационную версию в сборке, они будут соблюдены и не будут переопределены. (Вы можете увидеть код здесь .)

Во время выполнения вы можете прочитать версию сборки через отражение (как всегда).

При работе в приложении DNX также есть ILibraryManager интерфейс, который можно использовать для проверки запущенного приложения. Однако это довольно продвинутый сценарий.

Наконец, в файле project.json вы можете жестко закодировать x.y.z часть версии, например 1.2.3, но вы также можете указать * для спецификатора предварительной версии, например. 1.2.3-*. Если вы используете * для спецификатора предварительной версии, вы можете установить переменную среды с именем DNX_BUILD_VERSION, чтобы указать значение *, например. beta1 или rc2-54289.

Зарегистрированы некоторые запросы функций, чтобы обеспечить большую гибкость при указании полного номера версии извне.

person Eilon    schedule 08.09.2015