Nugetコードベースを見てSemanticVersion.cs
ください。これにより、提供されたバージョンを検証するための次の正規表現が提供されます。正規表現が一致しない場合、バージョンは無効です。
new Regex(@"^(?<Version>\d+(\s*\.\s*\d+){0,3})(?<Release>-[a-z][0-9a-z-]*)?$",
RegexOptions.Compiled
| RegexOptions.IgnoreCase
| RegexOptions.ExplicitCapture);
プレリリース文字列の形式は、厳密にはダッシュ、文字、ダッシュと英数字の任意の組み合わせで始まる必要があります。いいえ+
または.
許可されています。
pack
有効なバージョン以外のものを試してみると、次のようになります。
Attempting to build package from 'ConsoleApplication1.csproj.nuspec'.
'1.0.1+421.500' is not a valid version string.
Parameter name: version
どういうわけか無効なバージョンのパッケージを入手した場合は、nugetパッケージングプロセスがバイパスされている必要があり、プッシュしようとすると予測できない結果になると推測できます。