Ограничения версии Nuget - PullRequest
       52

Ограничения версии Nuget

0 голосов
/ 12 декабря 2018

Я использую Nuget 4.3.0.4406 для упаковки сборки с версией 5.2.29.181212.8244-RC, но я получаю

2018-12-12T08: 44: 02.8053309Z ## [error] Команда nugetошибка с кодом выхода (1) и ошибкой ('5.2.29.181212.8244-RC' не является допустимой строкой версии. Имя параметра: значение)

Управление версиями НЕ является совместимым, но Nuget устанавливает егоограничения и не понятно какие ..?Означает ли это, что Nuget не только поддерживает SemVer, но и обеспечивает его соблюдение?Я нашел this , но я не уверен, что они имеют в виду под SpecialVersion?

По сути, я просто хочу, чтобы x.y.z.[date+buildid](-rc), где x.y.z были привязаны к версии спецификации, чтобы она моглане следует пропускать (нам не принадлежит эта версия).

Обновление

  • 9.9.9.1812129999-rc работает, но 9.9.9.18121299999-rc и 9.9.9.9812129999-rc нет, где это указано?(это числовое ограничение, а не длина строки)

1 Ответ

0 голосов
/ 12 декабря 2018

Взято из Справочника по версиям пакетов NuGet в документах Microsoft:

В NuGet 4.3.0+ и Visual Studio 2017 версии 15.3+ NuGet поддерживает семантическое управление версиями 2.0.0.

Определенная семантика SemVer v2.0.0 не поддерживается на старых клиентах.NuGet считает версию пакета специфичной для SemVer v2.0.0, если выполняется любое из следующих утверждений:

  • Метка предварительного выпуска разделена точкой, например, 1.0.0-alpha.1
  • Версия имеет метаданные сборки, например, 1.0.0 + githash

Для nuget.org пакет определяется как пакет SemVer v2.0.0, если любой изверно следующее утверждение:

  • Собственная версия пакета совместима с SemVer v2.0.0, но не совместима с SemVer v1.0.0, как определено выше.
  • Любой из диапазонов версий зависимостей пакета имеетминимальная или максимальная версия, совместимая с SemVer v2.0.0, но не совместимая с SemVer v1.0.0, определенная выше;например, [1.0.0-alpha.1,).

Конечно, вы можете найти Спецификацию семантического контроля версий по адресу semver.org .Я думаю, что вы особенно заинтересованы в spec-item10 :

Метаданные сборки МОГУТ обозначаться добавлением знака плюс и серии разделенных точками идентификаторов сразу после исправления или пре-релизная версия.Идентификаторы ДОЛЖНЫ содержать только буквенно-цифровые символы ASCII и дефис [0-9A-Za-z-].Идентификаторы НЕ ДОЛЖНЫ быть пустыми.Метаданные сборки ДОЛЖНЫ игнорироваться при определении приоритета версии.Таким образом, две версии, которые отличаются только метаданными сборки, имеют одинаковый приоритет.Примеры: 1.0.0-alpha + 001, 1.0.0 + 20130313144700, 1.0.0-beta + exp.sha.5114f85.

Ваша версия стала бы чем-то вроде x.y.z(-rc)+[date+buildid]

...