プレリリース パッケージのビルド
更新したパッケージを新しいバージョン番号でリリースすると、NuGet はそれを "最新の安定版リリース" として見なし、たとえば、Visual Studio 内のパッケージ マネージャー UI で下記のように表示されます。
安定版リリースとは、実稼働環境で使用するだけの信頼性があると見なされるリリースです。 最新の安定版リリースは、パッケージ更新またはパッケージ復元でインストールされるリリースでもあります (「Reinstalling and updating packages」 (パッケージの再インストールと更新) の説明にある制約に左右されます)。
ソフトウェア リリース ライフサイクルをサポートするために、NuGet 1.6 以降では、プレリリース パッケージを配信できます。バージョン番号には、-alpha
、-beta
、-rc
のようなセマンティック バージョン管理サフィックスが含まれます。 詳細については、「Package versioning」(パッケージのバージョン管理) を参照してください。
次の方法のいずれかを使って、このようなバージョンを指定できます。
プロジェクトで
PackageReference
を使う場合:.csproj
ファイルのPackageVersion
要素にセマンティック バージョン サフィックスを含めます。<PropertyGroup> <PackageVersion>1.0.1-alpha</PackageVersion> </PropertyGroup>
プロジェクトに
packages.config
ファイルがある場合:.nuspec
ファイルのversion
要素にセマンティック バージョン サフィックスを含めます。<version>1.0.1-alpha</version>
安定版バージョンをリリースする用意ができたら、サフィックスを削除します。このパッケージはあらゆるプレリリース版に優先します。 繰り返しになりますが、「Package versioning」(パッケージのバージョン管理) を参照してください。
プレリリース パッケージのインストールと更新
既定で、NuGet ではパッケージの使用時にプレリリース版を含めませんが、この動作は次のように変更できます。
Visual Studio のパッケージ マネージャー UI: [NuGet パッケージの管理] UI で、[プレリリースを含める] ボックスを選択します。
このボックスをオンまたはオフにするとパッケージ マネージャー UI とインストールできるバージョンの一覧が更新されます。
パッケージ マネージャー コンソール:
Find-Package
、Get-Package
、Install-Package
、Sync-Package
、Update-Package
コマンドで スイッチを使用します。 「PowerShell Reference」 (PowerShell リファレンス) を参照してください。NuGet CLI:
install
、update
、delete
、mirror
コマンドで-prerelease
スイッチを使用します。 「NuGet CLI reference」(NuGet CLI リファレンス) を参照してください。
セマンティック バージョン管理
「Semantic Versioning or SemVer convention」 (セマンティック バージョニングまたは SemVer 規則) では、バージョン番号の文字列を活用し、基礎となっているコードの意味を伝える方法が説明されています。
この規則では、各バージョンが 3 つの部分、Major.Minor.Patch
から構成されています。それぞれ次のような意味があります。
Major
: 互換性に影響する変更点Minor
: 新機能、ただし下位互換性ありPatch
: 下位互換性のバグ修正のみ
プレリリース版には、パッチ番号の後にハイフンと文字列が付きます。 技術的に言えば、ハイフンの後にはあらゆる文字列を使用できます。それで NuGet はパッケージをプレリリースとして扱います。 NuGet は該当 UI に完全なバージョン番号を表示します。利用者はその意味を自分で解釈します。
それを踏まえた上で、次のような認められている命名規則に従うことが一般的に推奨されます。
-alpha
: アルファ リリース。一般的に、進行中の製品または実験に使用されます。-beta
: ベータ リリース。一般的に、次に計画されているリリースの機能をすべて利用できますが、既知のバグが含まれている可能性があります。-rc
: リリース候補。一般的に、重大なバグが現れない限り、最終版 (安定版) となる可能性があるリリース。
Note
NuGet 4.3.0 以降は、1.0.1-build.23
のように、ドット表記のプレリリース番号をサポートするセマンティック バージョニング v2.0.0 をサポートしています。 ドット表記は、バージョン 4.3.0 より前の NuGet ではサポートされていません。 以前のバージョンの NuGet では、1.0.1-build23
のような形式を使用できましたが、これは常にプレリリース版と見なされていました。
ただし、どのようなサフィックスを使用する場合でも、NuGet はアルファベットの逆順で優先順序を与えます。
1.0.1
1.0.1-zzz
1.0.1-rc
1.0.1-open
1.0.1-beta.12
1.0.1-beta.5
1.0.1-beta
1.0.1-alpha.2
1.0.1-alpha
このように、サフィックスのないバージョンは常にプレリリース版に優先します。
semver2 では、0 を前に付ける必要はありませんが、古いバージョンのスキーマでは付与されています。 プレリリース タグと共に数値のサフィックスを使用し、その数字が 2 桁 (以上) になる可能性がある場合、beta.01 や beta.05 のように、数字が大きくなっても確実に正しく並べ替えられるように、前に付けるゼロを使用してください。 この推奨事項は、古いバージョンのスキーマのみに適用されます。