Как автоматически увеличить номер версии Версии пакета при использовании файла проекта формата .Net Core в VS2019 - PullRequest
1 голос
/ 05 апреля 2019

Предыдущие ответы на этот вопрос относятся к редактированию файла AssembyInfo.cs для установки версии сборки.Я создаю пакет NuGet, используя новый упрощенный формат .Net Core файла .csproj для .Net Framework 4.6.1, и нет AssemblyInfo.cs (или он автоматически создан и удален).

ЕслиЯ пытаюсь установить для свойства Package Version значение 1.0.2. * В свойствах проекта в VS2019, я получаю всплывающую ошибку:

A wildcard (

Если возможноКак я могу получить номер ревизии с автоматическим приращением, в идеале, чтобы при каждой сборке номер увеличивался (1.0.2.45 => 1.0.2.46) и номер сохранялся в разных выпусках (1.0.2.46 => 1.0.3.47, вручнуюредактирование номера сборки / выпуска).

Примечание: я уже посмотрел ответ здесь , здесь и здесь и все ониобратитесь к атрибуту AssemblyVersion.Я хочу обновить версию пакета (которая является просто версией в файле CSProj).


Обновление: в одном из ответов предложено несколько инструментов версий GIT.Я забыл упомянуть, что TFS используется для многих проектов, на которых я хочу это использовать;Это рабочие проекты, которыми обмениваются другие члены команды, и они хорошо известны, поэтому их нелегко перенести в GIT без особых обсуждений, даже если руководство не получило простого вето как ненужное изменение.

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Во-первых, с подстановочными знаками в версиях сборки и пакета:

Не рекомендуется использовать подстановочный знак для версий сборки (не пакета) - новое значение по умолчанию для проектов "sdk-style" использует функцию компилятора под названием ""детерминированная сборка", целью которой является создание двоичного идентичного вывода для каждого компиляции одного и того же неизмененного исходного кода.Этот режим не позволяет использовать подстановочные знаки в сборочных версиях, которые будут меняться каждые 2 секунды.

Однако эту функцию можно отключить, установив

<PropertyGroup>
    <Deterministic>False</Deterministic>
</PropertyGroup>

Если затем использовать подстановочный знак вВ вашей версии сборки компилятор обновит вашу версию на основе текущего времени.

Чтобы повторно использовать эту версию сборки для версии пакета, вам необходимо добавить дополнительную логику сборки в файл проекта, как описано здесь: MSBuild / t: pack Nuget-Package всегда имеет одну и ту же версию

Что я рекомендую сделать:

Многие проекты используют свою историю git для управления версиями, увеличиваяверсия, основанная на подсчете коммитов git.

Я предлагаю рассмотреть такие инструменты, как Nerdbank.GitVersioning (легкий и простой в использовании) или GitVersion (больше возможностей и лучшая документация), которые позволяют вам настроить автоматическое получение ваших версий из создаваемых веток / тегов.

0 голосов
/ 05 апреля 2019

Нет поддержки автоматического увеличения для версий пакетов nuget.Вам необходимо выяснить / установить номер версии вручную (или программно) с помощью чего-то вроде msbuild, платформы непрерывной интеграции или стороннего инструмента.

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