ASP.NET Coreに、手持ちのライブラリを参照させる(2)
前回で、.NET Standardプロジェクトの参照が出来ました。
このプロジェクトが吐き出す dll をNuGetパッケージ
化すれば、ソースでなくバイナリの参照が出来るはずです。
今回は、パッケージ管理ツールの使い方をなぞっていきます。
ローカル用NuGetパッケージを作る
私の手持ちライブラリを、.NET Standard1.1
のバイナリを作るよう書き換えました。
これで作った dll を使い、ローカルで使うNuGetパッケージ
を作ってみます。
こちらの記載にあるNuGet Package Explorer
を使います。
バイナリの配布場所は見当たりませんでしたので、GitHubからソースを頂いて Visual Studio でビルドし、exe を作ります。
起動すると、こんな感じ。
3段目「Create a new package」を選ぶと、プレーンな新規データが表示されます。
まずは左ペインです。
パッケージの名称やバージョン、依存関係を書き込んでいきます。
左上のメモ帳っぽいアイコンをクリックすると、編集/表示が切り替わります。
ローカル使用時に必要なのは上端のID
,バージョン
、画面下部の依存関係
です。
なおID
項目は、公開されているNuGetパッケージと重複するものを避けてください。
依存解決時に、意図しないパッケージ情報を参照してしまう現象がありました。
依存関係
は、下端部「Edit dependencies」から出てくる画面で編集します。
.NET Standard
プロジェクトの依存ライブラリは、project.json
ファイルに書かれています。
{ "supports": {}, "dependencies": { "Microsoft.NETCore.Portable.Compatibility": "1.0.1", "NETStandard.Library": "1.6.0", "System.Net.Requests": "4.3.0", "System.Xml.XmlSerializer": "4.3.0" }, "frameworks": { "netstandard1.1": {} } }
ライブラリリスト下端左ボタンからライブラリ検索画面を開き、名称で絞り込んで選びながら追加していきます。
Target framework項目は、半角スペースとバージョンの小数点を消し、.NETStandard11
とするようです。
この項目の名称ルールは、何だか良くわかりません。
前回調べたJson.NET
のNewtonsoft.Json.nuspec
ファイル記述からコピペしました。
画面上の末尾小数点は消えてしまいますが、生成されるパッケージの定義ファイルには書き込まれています。
上のjsonにある依存ライブラリを全部書き込むと、下記のようになります。
左ペインが完成すると、こんな感じ。
次は右ペインです。
右側の空白箇所を右クリックすると、追加するフォルダリストが出てきます。
ルートにLib
フォルダを追加します。
lib
を右クリックし、.NET Standard1.1
用のフォルダを作ります。
Visual Studioでビルドした dll を、.NET Standard1.1
用フォルダに配置します。
これで、パッケージ作成準備完了です。
あとは保存すれば、
任意の場所にNuGetパッケージファイル
が作られます。
作られたNuGetパッケージファイルを、社内の共有フォルダに置いておけば、
複数人が参照するライブラリをNuGetで管理できるようになりますね。
参考:
Nugetの使い方とパッケージの作り方 - Qiita
GitHub - NuGetPackageExplorer/NuGetPackageExplorer: The new home for NuGetPackageExplorer (moved from https://npe.codeplex.com)
ローカルのNuGetフォルダからインストールする
次は、上で作ったNuGetパッケージを読み込む側の操作です。
ソリューションエクスプローラ上のプロジェクトを右クリック→「NuGetパッケージの管理」を選びます。
まず、上で作った自作NuGetパッケージを置いてあるソースフォルダを指定します。
画面右上、パッケージソース右側の歯車をクリック、ソース編集画面を開きます。
右上の「+」ボタンでパッケージソース行を追加し、名前とソースパスを書き込みます。
ソース編集を終えて戻てくると、NuGetのパッケージソースドロップダウンから、
先ほど追加したものが選択できるようになります。
中央上の[参照][インストール済み][更新プログラム]は、フィルタになっています。
[参照]を選ぶと、上で作ったパッケージがリストに表示されます。
選択してインストールボタンをクリックすると、取り込んでくれます。
参照項目に追加され、使えるようになりました!