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

この記事では、パッケージ、プロジェクト、アセンブリの依存関係を追加および削除する方法について説明します。

パッケージの依存関係を追加および削除する

依存関係を追加および削除するには、プロジェクト ファイルを編集するか 、.NET CLI コマンドを使用します。

CLI を使用する

依存関係を追加するには、SDK バージョンの dotnet package コマンドを実行します。

dotnet package add Microsoft.EntityFrameworkCore

依存関係を削除するには、SDK バージョンの dotnet package コマンドを実行します。

dotnet package remove Microsoft.EntityFrameworkCore

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

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

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

  <PropertyGroup>
    ...
  </PropertyGroup>

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

</Project>

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

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

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

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

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

PackageReference項目の詳細については、.NET SDK プロジェクトの MSBuild リファレンスを参照してください。

プロジェクト参照の追加と削除

プロジェクトが別のプロジェクトに依存している場合は、プロジェクト間参照を使用します。 プロジェクト参照を追加および削除するには、プロジェクト ファイルを編集するか、CLI を使用します。

CLI を使用する

プロジェクト参照を追加するには、SDK バージョンの dotnet reference コマンドを実行します。

dotnet reference add ../MyLibrary/MyLibrary.csproj

プロジェクト参照を削除するには、SDK バージョンに対して次のコマンドを実行します。

dotnet reference remove ../MyLibrary/MyLibrary.csproj

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

<ProjectReference> プロジェクト ファイル要素は、参照先のプロジェクトへのパスを識別します。 プロジェクト参照を追加するには、<ItemGroup>要素内に<ProjectReference>項目を追加します。 既存の <ItemGroup> に追加することも、新しいを作成することもできます。

<ItemGroup>
  <ProjectReference Include="../MyLibrary/MyLibrary.csproj" />
</ItemGroup>

プロジェクト参照を削除するには、プロジェクト ファイルから <ProjectReference> 要素を削除します。

ProjectReference項目の詳細については、一般的な MSBuild プロジェクト項目を参照してください。

アセンブリ参照の追加と削除

プロジェクト ファイルを使用してアセンブリ参照を追加および削除できます。 .NET CLI には、アセンブリ参照を追加または削除するためのコマンドは用意されていません。

プロジェクトまたはパッケージの一部ではない.NET アセンブリを参照するには、プロジェクト ファイルに<Reference>要素を追加します。 <HintPath>要素を使用して、アセンブリへの相対パスまたは絶対パスを指定します。

<ItemGroup>
  <Reference Include="MyAssembly">
    <HintPath>lib/MyAssembly.dll</HintPath>
  </Reference>
</ItemGroup>

アセンブリ参照を削除するには、その <Reference> 要素をプロジェクト ファイルから削除します。

Reference項目の詳細については、一般的な MSBuild プロジェクト項目を参照してください。

ヒント

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

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

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

    詳細については、「 ASP.NET Core 共有フレームワークの使用」を参照してください。

こちらもご覧ください