#14 C#で学ぶ外部ライブラリの基本
C#の外部ライブラリは、「NuGet」という公式のパッケージ管理システムを使って導入します。この記事では、C#における外部ライブラリの使い方の基本を、つまずきやすいポイントも含めて解説します。
NuGetでライブラリをインストールする
dotnet add package Newtonsoft.Json
Visual Studioを使っている場合は、「NuGetパッケージの管理」という画面から検索してインストールすることもできます。バージョンを指定したい場合は、コマンドに--versionオプションを付けます。
dotnet add package Newtonsoft.Json --version 13.0.3
ライブラリを使う
using Newtonsoft.Json;
string json = JsonConvert.SerializeObject(person);
プロジェクトファイルに記録される
インストールしたライブラリは、プロジェクトの.csprojというファイルに、次のようなPackageReferenceという形で自動的に記録されます。
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>
このファイルがあれば、他の環境でも同じライブラリを揃えられます。他の人が作ったプロジェクトをGitなどから取得した直後は、ライブラリの実体(dllファイル等)はまだダウンロードされていないため、次のコマンドで.csprojの内容をもとに一括復元します。
dotnet restore
実はdotnet buildやdotnet runを実行すると、内部で自動的にrestoreが走るため、普段は明示的に打たなくても済むことが多いですが、仕組みとして知っておくと復元エラー時の切り分けに役立ちます。
C#ならではの注意点
NuGetは、JavaのMaven Centralやnpmのレジストリと同じような役割を果たす、C#の標準的なライブラリ配布の仕組みです。名前が独特なので、他の言語の経験がある人は「NuGet=C#のパッケージ管理」と覚えておくとよいでしょう。また、複数のライブラリが依存する共通ライブラリのバージョンが食い違う「バージョン衝突」が起きることもあります。ビルドエラーでバージョンに関するメッセージが出た場合は、.csproj内のバージョン指定を見直すか、dotnet list packageコマンドで依存関係を確認するとよいでしょう。
まとめ
C#の外部ライブラリはNuGetを通じてdotnet add packageで導入します。.csprojファイルでの管理、他環境でのdotnet restoreによる復元、バージョン衝突時の確認方法もあわせて覚えておきましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
C#をもっと学びたい方には「確かな力が身につくC#「超」入門 第2版」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿