Nugetから取得するパッケージは基本的には、安定バージョンですが、プレリリース版(β版とか)も取得出来ます。
プレリリース版は、その名の通り次期バージョンで、公開する側からするとβ版やα版の位置づけです。
プレリリース版の便利なところは、使う側が任意で選択しない限り選択肢として出てこないとこです。
そして、安定版が公開されたらパッケージのアップデートを行えば最新になる楽チン仕様
検証では、自分の環境にNugetサーバーを立てて行いました。
使用したバージョンは下記の通り
NuGet.Server v2.8.60318.667
Nuget.exe v2.8.5
VisualStudioからみたリリース前バージョン
リリース前バージョンの公開方法
リリース前のパッケージとして認識させるには、バージョンの末尾にプレフィックスを付与するだけです。
例)
1.0.0-prereleace
ここでは、-prereleaceとしていますが"-beta"や"-dugfix"などで任意の文字列で構いません。
ただし、Nugetパッケージ管理上のバージョニングと.netのバージョニングの仕様が異なるので不都合が生じることがあります。
Nugetのバージョニング
[メジャー].[マイナー].[パッチ]
.Netのバージョニング
[メジャー].[マイナー].[ビルド番号].[リビジョン]
Nugetのバージョニングは、"Semantic Versioning 2.0.0"とやらに準拠しており3項目から構成されています。
この違いを無視して、プレリリース版用に末尾にプレフィックスをつけると、パッケージファイル(.nupkg)を作成する段階でエラーになります。
警告: パッケージ 'ClassLibrary1' に 1 個の問題が見つかりました。
問題: セマンティック バージョンの使用
説明: バージョン "1.0.0.0-beta" は、セマンティック バージョンのガイドラインに従
っていません。
ソリューション: nuspec ファイルを更新するか、AssemblyInformationalVersion アセン
ブリ属性を使用して、http://semver.org の説明に従ってセマンティック バージョンを
指定してください。
誤) 1.0.0.0-beta
正) 1.0.0-beta
それを踏まえてリリース前のパッケージを作成します。
プロジェクトファイルからパッケージを作成する場合(.nupkg)
AssemblyInfo.csに"AssemblyInformationalVersion"を追加します。
// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を // 既定値にすることができます: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0-beta")]
nuspecファイルをからパッケージを作成する場合(.nupkg)
メタデータ(XML)ファイルを作成する際に、バージョンの末尾にプレフィックスを付与します。
<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd"> <metadata> <id>ClassLibrary1</id> <version>1.0.0-beta</version> <title>ClassLibrary1</title> <authors>Ninomiya</authors> <owners>Ninomiya</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Description</description> <copyright>Copyright © Ninomiya 2015</copyright> </metadata> <files> <file src="lib\net451\ClassLibrary1.dll" target="lib\net451\ClassLibrary1.dll" /> </files> </package>
パッケージ(.nupkg)をパブリッシュ
nuget push ClassLibrary1.1.0.0-beta.nupkg -s http://********/ {apikey}
(∩´∀`)∩ワーイ
ただこのリリース前のパッケージバージョン問題って抜け道がありました(´・ω・`)
パッケージ(.nupkg)を作成するのに、コマンドラインではなくNuGet Package Explorerからメタデータを編集して、[FILE] > [Export...]とすれば、”1.0.0.0-beta”でもパッケージファイルが作成出来てそのままパブリッシュできるんですよね。
NuGet Package Explorer
VisulaStudio パッケージの管理
検証には、自分の環境にNugetサーバーを立てて検証しました。
簡単でいいですね。とってもいい。