dotnet add package

本文適用于: ✔️.NET Core 3.1 SDK 和更新版本

名稱

dotnet add package - 在專案檔中新增或更新套件參考。

概要

dotnet add [<PROJECT>] package <PACKAGE_NAME>
    [-f|--framework <FRAMEWORK>] [--interactive]
    [-n|--no-restore] [--package-directory <PACKAGE_DIRECTORY>]
    [--prerelease] [-s|--source <SOURCE>] [-v|--version <VERSION>]

dotnet add package -h|--help

描述

dotnet add package命令提供方便的選項,可在專案檔中新增或更新套件參考。 當您執行 命令時,會有相容性檢查,以確保套件與專案中的架構相容。 如果檢查通過,而且專案檔中未參考封裝, <PackageReference> 專案就會新增至專案檔。 如果檢查通過,而且專案檔中已經參考封裝,專案 <PackageReference> 就會更新為最新的相容版本。 更新專案檔之後,即會執行 dotnet restore

例如,將 Microsoft.EntityFrameworkCore 新增至 ToDo.csproj 會產生類似下例的輸出:

  Determining projects to restore...
  Writing C:\Users\username\AppData\Local\Temp\tmp24A8.tmp
info : Adding PackageReference for package 'Microsoft.EntityFrameworkCore' into project 'C:\ToDo\ToDo.csproj'.
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/index.json
info :   GET https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/0.0.1-alpha/3.1.3.json
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/3.1.4/7.0.0-preview.2.22153.1.json
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/7.0.0-preview.3.22175.1/7.0.0-preview.3.22175.1.json
info :   NotFound https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json 257ms
info : Restoring packages for C:\ToDo\ToDo.csproj...
info : Package 'Microsoft.EntityFrameworkCore' is compatible with all the specified frameworks in project 'C:\ToDo\ToDo.csproj'.
info : PackageReference for package 'Microsoft.EntityFrameworkCore' version '6.0.4' added to file 'C:\ToDo\ToDo.csproj'.
info : Writing assets file to disk. Path: C:\ToDo\obj\project.assets.json
log  : Restored C:\ToDo\ToDo.csproj (in 171 ms).

ToDo.csproj 檔案現在會包含參考套件的 <PackageReference> 元素。

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />

隱含還原

您不需要執行 dotnet restore ,因為所有需要還原的命令都會隱含地執行,例如 dotnet newdotnet build 、、 dotnet rundotnet testdotnet publish 、 和 dotnet pack 。 若要停用隱含還原,請使用 --no-restore 選項。

dotnet restore在明確還原的某些案例中,此命令仍然很有用,例如在Azure DevOps Services中持續整合組建,或在需要明確控制還原何時發生的組建系統中。

如需如何管理 NuGet 摘要的詳細資訊,請參閱dotnet restore

引數

  • PROJECT

    指定專案檔。 如果未指定,命令會在目前的目錄中搜尋一個專案檔。

  • PACKAGE_NAME

    要新增的套件參考。

選項

  • -f|--framework <FRAMEWORK>

    只有在以特定 架構為目標時,才會新增套件參考。

  • -?|-h|--help

    列印出如何使用 命令的描述。

  • --interactive

    可讓命令停止,並等候使用者輸入或進行動作。 例如完成驗證。

  • -n|--no-restore

    新增套件參考,而不執行還原預覽和相容性檢查。

  • --package-directory <PACKAGE_DIRECTORY>

    還原套件的目錄。 Windows 上的預設套件還原位置為 %userprofile%\.nuget\packages,macOS 和 Linux 上則為 ~/.nuget/packages。 如需詳細資訊,請參閱在 NuGet 中管理全域套件、快取和暫存資料夾

  • --prerelease

    允許安裝發行前版本套件。 自 .NET Core 5 SDK 起提供

  • -s|--source <SOURCE>

    還原作業期間要使用的 NuGet 套件來源 URI。

  • -v|--version <VERSION>

    套件的版本。 請參閱 NuGet 套件版本控制 \(部分機器翻譯\)。

範例

  • Microsoft.EntityFrameworkCore NuGet 套件新增至專案:

    dotnet add package Microsoft.EntityFrameworkCore
    
  • 將特定版本的套件新增至專案:

    dotnet add ToDo.csproj package Microsoft.Azure.DocumentDB.Core -v 1.0.0
    
  • 使用特定 NuGet 來源新增套件:

    dotnet add package Microsoft.AspNetCore.StaticFiles -s https://dotnet.myget.org/F/dotnet-core/api/v3/index.json
    

另請參閱