Asp.net-mvc-nuget-package-management

提供:Dev Guides
移動先:案内検索

ASP.NET MVC-NuGetパッケージ管理

この章では、.NETおよびVisual StudioのパッケージマネージャーであるNuGetについて説明します。 NuGetを使用して、パッケージ、つまり、プロジェクトで使用したいソフトウェアピースとアセンブリ、および物を見つけてインストールできます。

NuGetは、ASP.NET MVCプロジェクトに固有のツールではありません。 これは、Visual Studioの内部でコンソールアプリケーション、WPFアプリケーション、Azureアプリケーション、あらゆる種類のアプリケーションに使用できるツールです。

パッケージ管理

NuGetはパッケージマネージャーであり、システム内のソフトウェアのダウンロード、インストール、更新、および構成を担当します。 ソフトウェアという用語からは、Microsoft WordやNotepad 2などのエンドユーザーソフトウェアを意味するものではありません。 ただし、プロジェクトで使用するソフトウェアの一部、アセンブリ参照。

たとえば、使用するアセンブリは、モックオブジェクトユニットテスト用のモック、データアクセス用のNHibernate、アプリケーションの構築時に使用するコンポーネントなどです。 上記のコンポーネントはオープンソースのソフトウェアですが、見つけたNuGetパッケージの一部はクローズドソースのソフトウェアです。 あなたが見つけるパッケージのいくつかは、Microsoftによってさえ生成されます。

上記のすべてのパッケージ(モックやNHibernateなど)、およびEntity FrameworkのプレビューなどのMicrosoftパッケージに共通するテーマは、デフォルトではVisual Studioに付属しないということです。

NuGetなし

NuGetなしでこれらのコンポーネントをインストールするには、次の手順が必要です。

NuGetのないコンポーネント

これらのコンポーネントのいずれかを使用する場合は、特定のプロジェクトのホームページを見つけ、ダウンロードリンクを探す必要があります。 その後、プロジェクトがダウンロードされると、通常はZIP形式であるため、解凍する必要があります。

バイナリをダウンロードしていない場合は、まずソフトウェアをビルドしてからプロジェクトで参照する必要があります。 そして、その時点での多くのコンポーネントは、立ち上げて実行するためにまだ何らかの構成を必要とします。

NuGetを使用する

NuGetは、前に説明したすべての手順を置き換えるもので、「パッケージの追加」と言うだけで済みます。 NuGetは、最新バージョンをダウンロードする場所、抽出する方法、そのコンポーネントへの参照を確立する方法、および構成する方法を知っています。 これにより、ソフトウェアをビルドするだけの時間を確保できます。

NuGetを使用してASP.NET MVCプロジェクトにエンティティフレームワークのサポートを追加する簡単な例を見てみましょう。

  • ステップ1 *-Entity Frameworkをインストールします。 プロジェクトを右クリックして、NuGetパッケージマネージャー→ソリューションのNuGetパッケージの管理…を選択します

Select NuGet Package Manager

NuGetパッケージマネージャーが開きます。

  • ステップ2 *-検索ボックスでエンティティフレームワークを検索します。

Entity Frameworkの検索

  • ステップ3 *-Entity Frameworkを選択して、[インストール]ボタンをクリックします。 [プレビュー]ダイアログが開きます。

プレビューダイアログ

  • ステップ4 *-[OK]をクリックして続行します。

プレビューダイアログクリックOK

  • ステップ5 *-[同意する]ボタンをクリックしてインストールを開始します。

インストールに同意します

Entity Frameworkがインストールされると、上記のようにoutウィンドウにメッセージが表示されます。

NuGetでパッケージをインストールすると、プロジェクトをホストするソリューションファイルと同じフォルダーに新しいパッケージディレクトリが表示されます。 このパッケージディレクトリには、そのソリューションの任意のプロジェクトにインストールしたすべてのパッケージが含まれます。

プロジェクト内のすべてのパッケージ

つまり、NuGetはパッケージを中央の場所にダウンロードするのではなく、ソリューションごとにパッケージを保存します。