管理 .NET 應用程式中的相依性

本文說明如何新增與移除套件、專案及組件相依關係。

新增與移除套件相依性

您可以編輯項目檔或透過 .NET CLI 命令來新增和移除相依性。

使用命令列介面(CLI)

要新增依賴,請執行 dotnet package 你 SDK 版本的指令:

dotnet package add Microsoft.EntityFrameworkCore

要移除相依性,請執行 dotnet package 你 SDK 版本的指令:

dotnet package remove Microsoft.EntityFrameworkCore

編輯專案檔

若要新增相依性,請在<PackageReference>元素內新增<ItemGroup>項目。 您可以將內容新增至現有的<ItemGroup>,或建立新的<ItemGroup>。

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

  <PropertyGroup>
    ...
  </PropertyGroup>

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

</Project>

屬性 Include 會指定要加入至專案的封裝標識碼。 屬性 Version 會指定要取得的版本。 版本會依 NuGet 版本規則指定。

使用條件來新增只能在特定目標中使用的相依性,如下列範例所示:

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

只有在該指定目標發生組建時,上述範例中的相依性才有效。 條件中的 $(TargetFramework) 是在專案中設定的 MSBuild 屬性。 針對最常見的 .NET 應用程式,您不需要這麼做。

若要移除相依性,請從項目檔中移除其 <PackageReference> 項目。

欲了解更多相關PackageReference資訊,請參閱 MSBuild 關於 .NET SDK 專案的參考資料。

新增與移除專案參考

當您的專案依賴另一個專案時,請使用專案之間的參考。 要新增或移除專案參考,請編輯專案檔案或使用 CLI。

使用命令列介面(CLI)

若要新增專案參考,請執行適用於您 SDK 版本的 dotnet reference 命令。

dotnet reference add ../MyLibrary/MyLibrary.csproj

要移除專案引用,請執行以下指令以符合你的 SDK 版本:

dotnet reference remove ../MyLibrary/MyLibrary.csproj

編輯專案檔

<ProjectReference>專案檔案元素用來識別被參考專案的路徑。 要新增專案參考,請在元素<ItemGroup>內加入<ProjectReference>一個項目。 您可以將內容新增至現有的<ItemGroup>,或建立新的<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 組態。 在 NuGet 還原完成之前,不會使用套件中的 .targets 和 .props 檔案。 還原所需的任何內容必須位於專案本身的項目檔或 .targets 檔案中,而不是套件相依性。

  • 如果您想要在主控台應用程式或類別庫中使用 ASP.NET API,請將 FrameworkReference 專案新增至項目檔:

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

    如需詳細資訊,請參閱 使用 ASP.NET Core 共用架構。

另請參閱