Nuget '2.0.20180607160057-jenkins' не является верной строкой версии - PullRequest
0 голосов
/ 07 июня 2018

У меня есть отправленный push-запрос Nuget, который отказывается отправлять мой пакет Nuget:

"%NUGET%" push *.nupkg -Source "%NUGETREPO%"

Ошибка, с которой я сталкиваюсь:

'2.0.20180607160057-jenkins' is not a valid version string.
Parametername: value

1 Ответ

0 голосов
/ 07 июня 2018

При написании вопроса я вырыл кроличью нору до очевидного конца.

Соответствующая реализация здесь https://github.com/NuGet/NuGet2/ ... /src/Core/SemanticVersion.cs

^(?<Version>\d+(\s*\.\s*\d+){0,3})(?<Release>-[a-z][0-9a-z-]*)?$
^(?<Version>\d+(\.\d+){2})(?<Release>-[a-z][0-9a-z-]*)?$

Когда я передаю 2.0.20180607160057-jenkins в онлайн тестер регулярных выражений Строка проходит оба теста регулярных выражений.Онлайн-регулярные выражения даже позволяют мне переключать Ignore Case и Explicit Capture.

Следующий более глубокий уровень находится в

Version.TryParse(match.Groups["Version"].Value, out versionValue)

System.Version.TryParse задокументировано здесь ,Никакая версия не может быть меньше 0 или больше Int32.MaxValue.Так что этот конкретный сбой сводится к

2147483647 < 20180607160057

довольно интуитивно на самом деле - и мне нужна другая схема для генерации уровня патча для nuget.

...