3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

NuGetとは?NuGet使って共有ライブラリーの管理

Posted at

NuGetとは

NuGetは、.NET開発のためのパッケージマネージャーです。パッケージとは、ライブラリやツールのような再利用可能なコードの単位を指し、これを効率的に管理・導入することができるツールがパッケージマネージャーとなります。NuGetは、このようなパッケージを簡単にインストール、アンインストール、更新する作業をサポートします。

現在データ管理するプロジェクトを進めていますが、ここでは複数のプロジェクトが存在し、データの定義を共有する必要があります。単一ソリューションであれば、ソリューションの中にライブラリーがあればいいのですが、複数ソリューションや、まったく別のソリューションを管理している際に、参照先のライブラリーを管理することは困難、という時に登場するのがNuGetです。既に皆さんはプロジェクトでASP.Net Coreなど、いくつかライブラリーを参照していますが、これらはNuGetによって管理されています。この仕組みを使って自分たちで使っているデータ定義(クラスライブラリー)を管理しようというのが、今回の目論見です。

image.png

NuGetパッケージが更新されると自動で通知が行ったり、設定によっては自動で更新されたりするのでとても便利です。.NETで開発している人からするととても便利です。

例えば下記のようなデータ定義をしたとします。

  public class Thing
  {

      // Thing
      public string AdditionalType { get; set; }

      public string AlternateName { get; set; }
      public string Description { get; set; }
      public string DisambiguatingDescription { get; set; }
      public string Identifier { get; set; }
      public string Image { get; set; }
      public string Name { get; set; }
      public string PotentialAction { get; set; }
      public string SameAs { get; set; }
      public string SubjectOf { get; set; }
      public string Url { get; set; }
  }

この定義を様々なプロジェクトで共有し、更新までも管理していくんとなると大変になります。なので、これをNuGet上で管理することで、この定義を更新するたびにすべてのプロジェクトで最新の定義を参照することができます。

公開NuGetと非公開NuGet

今日は公開されるNuGetパッケージに関して話を進めていますが、公開したくない、社内のみで利用を想定しているNuGetパッケージもあるかと思います。こちらは、また別の機会にお話ししたいと思いますが。自社でNuGetサーバーを用意して配信したりもすることができます。

準備

まずはNuGetの管理単にであるパッケージを用意します。VisualStudioにて、クラスライブラリープロジェクトがある前提で、プロジェクトを右クリック、「プロパティ」、「パッケージ」と進みます。

image.png

ここで重要なのはビルド時にNuGetパッケージを生成がチェックされていることです。

image.png

他のプロパティーは良しなに進めていきましょう。

そして実際にビルドをしてみると、下記のように.nupkgが作成されたよ、と出てきます。これで準備完了です。

image.png

更新

次にNuGetへ移動します、ここでは既にアカウントを持っているものとします。

ログイン後、「Upload」から先ほど生成したファイル .nupkgを選択します。

image.png

ライセンス

さて、進めてみたらこんな警告がでてきました。

image.png

ライセンス設定していないぞ、と。ライセンスに関しては、また別の機会にまとめたいと思いますが、公開するものであれば、ライセンスを必ず設定してください。

公開待ち

パッケージのアップロードは完了しました。

image.png

この画面にもあるように、まだ、公開はされていませんが、しばらくしてから公開されるます、このまま待機して、公開完了メールを待ちます。

確認

では、自分で公開したNuGetパッケージが利用可能か確認してみます。 別のソリューションを開いて、プロジェクト上を右クリック、NuGetパッケージの管理、検索部分にパッケージ名を入力してみましょう。

image.png

image.png

実際にコードの中でアップロードしたクラスを参照してみます。ここでは先ほどのThingという定義を使ってThingを戻してみます。

image.png


今日は一通り、NuGetでパッケージをリリースするところまで進めてみました。外部にバージョンを表記するばあいはshields.ioなどを使って共有していくこともできます。 便利なクラスを作ったら公開してみてください。たくさんの人が利用する日が来ると思います、そしてそれで、開発管理工数が飛躍的に効率化されると思います。ではでは。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?