Nuget Packageの作り方
EasySqlParserでNuget Packageを作るときにハマったのでメモ
昔はCUI(Nugetコマンド)とかGUI(NuGet Package Explorer)とかでやってたましたが.NET Standardではdotnetコマンドでやります
cd プロジェクトファイルがあるディレクトリ dotnet pack -c Release rem デバッグシンボルも含める場合 rem dotnet pack -c Release --include-symbols
いやー、楽になったもんです
昔やったときはnuspecとかいうNugetパッケージを作るための元ネタ(ライブラリのバージョンとか依存関係とか)となるxmlを作る必要があったんですがそれは不要になりました
.NET Standardではそれらの情報をどこに書くかというとプロジェクトファイルに書きます
別ファイルに書くより断然楽です
Nugetパッケージができたらサーバにプッシュします
dotnet nuget push xxx.nupkg
ハマったところ
上記の情報はググればわりとヒットします
ハマったのは2019でやろうとしたときのことです
2017時代の情報はここに載っていますが、2019と比べると何かが違う
ライセンスが2017ではライセンスファイルへのURL指定だったものが2019では「MIT」とか「Apache-2.0」とか単なる文字列を指定するように変わっていました
どういう文字列ならいいのかという話ですが、これはSPDX識別子というもののようでここから選んで指定します
まとめ
.NET Standardでは…
ライブラリのバージョンの情報などはプロジェクトファイル(csprojとか)に書く
PackageLicenseExpressionはSPDX識別子から選ぶ
Nugetパッケージはdotnetコマンドで作る
おまけ
これを見る限りは以前に比べてプライベートリポジトリが増えているようなので、社内のライブラリでも利用するようにすれば管理が楽になると思います