C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

C#/.net/NuGet: nuget デビューしたはなし

数年ぶりに C# の実装を書いていて「きぶん」と「おもいつき」で書いてみたライブラリー的な。そのうち整理もするけれど、とりあえず今週末は nuget とかいう何かの author としての使い方の基本を覚える事にしたのです。

Microsoft の解説は、

  1. NuGet パッケージの公開方法 | Microsoft Docs
    • ここを最初に見て「ほーん、パッケージをローカルでこさえたら後はウェブブラウザーでアップロードするのが簡単そうじゃな(とりあえず自動化するわけじゃなきゃAPIキーがどうとか要らん手間じゃしー😋)」
  2. Create and publish a .NET Standard package using Visual Studio on Windows | Microsoft Docs
    • 次にここを見て「うちのプロジェクト、 Package タブないやん(´・ω・`)」
  3. Create and publish a .NET Framework package using Visual Studio on Windows | Microsoft Docs
    • 次にここを見て「ほいほい、ほな nuget ... コマンドどこじゃ…パスも通ってないしNATIVEのCMDでもパス通ってないし、いつものところに入ってそうだけど探すのめんどくさー」
  4. NuGet Gallery | Downloads
    • 次にここへ遊びに行って「VS2017いんてぐれーてっどより new な Windows x86 Commandline の nuget.exe あるじゃないのー、採用♥」

…と、うろうろしながら nuget パッケージを作って nuget.org で owner として公開しました。

手順メモ:

  1. VS2017 Installer で NuGet の…と、いうのは実際問題どうでもよいので気にしない事にして IDE とかいんてぐれーてっどの事は忘れる。
  2. https://www.nuget.org/downloads で最新の Windows x86 Commandline を拾ってくる。ナマ・エグゼをダウンロードするドキドキ体験♥
  3. nuget.exe をどこか適当なところに置いて、端末エミュレーター的な何かから nuget.exe を叩いてサブコマンドリストが出る動作を確認。
    • 私はどうせ Visual Studio で扱う %HOMEPATH%/source/repos/ 以下の dir の .sln の下の .csproj でしか使わないので、この repos にとりあえずで置いた。
  4. nuget.exe spec myproject.csproj して myproject.nuspec を生成
  5. myproject.nuspec を適当に編集
    • 先の Microsoft の案内によれば licenseUrl, projectUrl, iconUrl, releaseNotes, tags を適当に書いてね、との事なので書いた。
      • 先に repos を github へ公開しておいたので licenseUrl, projectUrl はそこへリンクしただけにした。(ただし、どうも licenseUrl をパッケージ外のURLにするのは nuget.org 的には Deprecated ではあるらしい。)
      • iconUrl は Gravater の私のいつものアイコンの URL にしておいた。
    • 加えて、 authors, owners$author$ のままだと nuget.exe がエラーで死ぬので、適当に変数ではない値を書いておく必要があった。
  6. nuget.exe pack して myproject.x.y.z.nupkg をこさえる( myproject.nuspec があるディレクトリーで行う)
  7. ウェブブラウザーhttps://www.nuget.org/packages/manage/upload から myproject.x.y.z.nupkg をアップロードする
  8. README を URL から回収するユーザーインターフェースがあるので github の README.md の raw な URL など貼って取り込ませる。

↓ちなみに・w・

f:id:USAGI-WRP:20181216182231p:plain

nuget.exe は WSL の zsh から叩いても動きます(゜∀。)