.NET アプリケーションでパッケージの依存関係を管理する

この記事では、プロジェクト ファイルを編集するか、CLI を使用することにより、パッケージの依存関係を追加および削除する方法について説明します。

<PackageReference> 要素

<PackageReference> プロジェクト ファイル要素の構造は次のとおりです。

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" />

Include 属性では、プロジェクトに追加するパッケージの ID を指定します。 Version 属性では、取得するバージョンを指定します。 バージョンは、NuGet のバージョン ルールに従って指定します。

次の例に示すように、条件を使用して、特定のターゲットでのみ使用できる依存関係を追加します。

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" Condition="'$(TargetFramework)' == 'netcoreapp2.1'" />

前の例の依存関係は、指定されたターゲットでビルドが行われている場合にのみ有効です。 条件の $(TargetFramework) は、プロジェクトで設定される MSBuild プロパティです。 最も一般的な .NET アプリケーションの場合、これを行う必要はありません。

依存関係の追加と削除

プロジェクト ファイルを変更することで、あるいは .NET CLI コマンドを利用することで依存関係を追加および削除できます。

プロジェクト ファイルを編集する

依存関係を追加するには、<ItemGroup> 要素内に <PackageReference> 項目を追加します。 既存の <ItemGroup> に追加するか、新しく作成することができます。

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    ...
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.2" />
  </ItemGroup>

</Project>

依存関係を削除するには、プロジェクト ファイルから <PackageReference> 項目を削除します。

CLI の使用

依存関係を追加するには、次の例に示すように、dotnet add package コマンドを実行します。

dotnet add package Microsoft.EntityFrameworkCore

依存関係を削除するには、次の例に示すように、dotnet remove package コマンドを実行します。

dotnet remove package Microsoft.EntityFrameworkCore

ヒント

  • 参照されるパッケージの .targets または .props ファイルに、復元操作への入力を含めないでください。 これらの入力には、PackageReference 項目、ExcludeAssets 属性、使用する NuGet フィード、その他の NuGet構成を含めることができます。 パッケージからの .targets および .props ファイルは、NuGet 復元が完了するまで使用されません。 復元に必要なものはすべて、パッケージ依存関係ではなく、プロジェクト自体のプロジェクト ファイルまたは .targets ファイルに含める必要があります。

  • コンソール アプリケーションまたはクラス ライブラリで ASP.NET API を使用する場合、プロジェクト ファイルに FrameworkReference 項目を追加します。

    <FrameworkReference Include="Microsoft.AspNetCore.App" />

    詳細については、「ASP.NET Core 共有フレームワーク」をご覧ください。

関連項目