restore 命令 (NuGet CLI)

適用於: 套件耗用量 • 支援的版本: 2.7+

下載並安裝資料夾中遺漏 packages 的任何套件。 搭配 NuGet 4.0+ 和 PackageReference 格式使用時,如有需要,obj請在資料夾中產生<project>.nuget.props檔案。 (可從原始檔控制省略檔案。

在 Mono 上使用 CLI 的 Mac OSX 和 Linux 上,PackageReference 不支援還原套件。

使用方式

nuget restore <projectPath> [options]

其中 <projectPath> 指定方案或 packages.config 檔案的位置。 如需行為詳細數據,請參閱 下方的

選項。

  • -ConfigFile

    要套用的 NuGet 組態檔。 如果未指定, %AppData%\NuGet\NuGet.Config 則會使用 (Windows) 或 ~/.nuget/NuGet/NuGet.Config~/.config/NuGet/NuGet.Config (Mac/Linux)。

  • -DirectDownload

    (4.0+) 直接下載套件,而不用任何二進位檔或元數據填入快取。

  • -DisableParallelProcessing

    停用平行還原多個套件。

  • -FallbackSource

    (3.2+) 在主要或預設來源中找不到套件時,要當做後援使用的套件來源清單。 使用分號來分隔清單專案。

  • -Force

    在 PackageReference 型專案中,強制解析所有相依性,即使上次還原成功也一樣。 指定此旗標類似於刪除 project.assets.json 檔案。 這不會略過 HTTP-cache。

  • -ForceEnglishOutput

    (3.5+) 強制nuget.exe使用非變異的英文文化特性來執行。

  • -ForceEvaluate

    即使已有鎖定檔案,強制還原以重新評估所有相依性。

  • -?|-help

    顯示命令的說明資訊。

  • -LockFilePath

    寫入專案鎖定檔案的輸出位置, 根據預設,這是 PROJECT_ROOT\packages.lock.json

  • -LockedMode

    禁止更新專案鎖定檔案。

  • -MSBuildPath

    (4.0+) 指定要與 指令搭配使用的 MSBuild 路徑,其優先順序高於 -MSBuildVersion

  • -MSBuildVersion

    (3.2+) 指定要與此命令搭配使用的 MSBuild 版本。 支援的值為 4、12、14、15.1、15.3、15.4、15.5、15.6、15.7、15.8、15.9。 根據預設,會挑選路徑中的 MSBuild,否則會預設為最高安裝的 MSBuild 版本。

  • -NoHttpCache

    防止 NuGet 使用 HTTP 快取套件。 請參閱 管理全域套件和快取資料夾

  • -NonInteractive

    隱藏使用者輸入或確認的提示。

  • -OutputDirectory

    指定安裝套件的資料夾。 如果未指定任何資料夾,則會使用目前的資料夾。 除非使用 或 SolutionDirectory ,否則PackagesDirectory使用 檔案還原packages.config時需要 。

  • -PackageSaveMode

    指定要在套件安裝之後儲存的檔案類型:、 或 nuspec;nupkgnuspecnupkg其中一個。

  • -PackagesDirectory

    OutputDirectory 相同。 除非使用 或 SolutionDirectory ,否則OutputDirectory使用 檔案還原packages.config時需要 。

  • -Project2ProjectTimeOut

    解析專案對項目參考的秒數逾時。

  • -Recursive

    (4.0+) 還原UWP和.NET Core 專案的所有參考專案。 不適用於使用 packages.config的專案。

  • -RequireConsent

    確認在下載並安裝套件之前已啟用還原套件。 如需詳細資訊,請參閱 套件還原

  • -SolutionDirectory

    指定方案資料夾。 還原解決方案的套件時無效。 除非使用 或 OutputDirectory ,否則PackagesDirectory使用 檔案還原packages.config時需要 。

  • -Source

    指定要用於還原的套件來源清單(作為 URL)。 如果省略,命令會使用組態檔中提供的來源,請參閱 設定 NuGet 行為。 使用分號來分隔清單專案。

  • -UseLockFile

    讓專案鎖定檔案可透過還原產生和使用。

  • -Verbosity [normal|quiet|detailed]

    指定輸出中顯示的詳細資料量: normal (預設值), quietdetailed

另請參閱 環境變數

備註

restore 命令會執行下列步驟:

  1. 判斷還原命令的作業模式。

    projectPath 文件類型 行為
    專案 (資料夾) NuGet 會尋找檔案 .sln ,並在找到時使用該檔案,否則會提供錯誤。 (SolutionDir)\.nuget 會當做起始資料夾使用。
    .sln 檔案 還原解決方案所識別的套件;如果使用 -SolutionDirectory ,則會提供錯誤。 $(SolutionDir)\.nuget 會當做起始資料夾使用。
    packages.config 或項目檔 還原檔案中列出的套件,解析並安裝相依性。
    其他文件類型 檔案假設為 .sln 上述檔案;如果不是解決方案,NuGet 會提供錯誤。
    (未指定 projectPath)
    • NuGet 會在目前資料夾中尋找方案檔。 如果找到單一檔案,則會使用該檔案來還原套件;如果找到多個解決方案,NuGet 會產生錯誤。
    • 如果沒有方案檔,NuGet 會尋找 packages.config 並使用該檔案來還原套件。
    • 如果找不到任何解決方案或 packages.config 檔案,NuGet 會提供錯誤。
  2. 使用下列優先順序來判斷 packages 資料夾(如果找不到這些資料夾,NuGet 就會發生錯誤):

    • 使用 -PackagesDirectory指定的資料夾。
    • repositoryPath中的值Nuget.Config
    • 使用 指定的資料夾 -SolutionDirectory
    • $(SolutionDir)\packages
  3. 還原解決方案的套件時,NuGet 會執行下列動作:

    • 載入方案檔。
    • 將中列出的 $(SolutionDir)\.nuget\packages.config 解決方案層級套件還原到 packages 資料夾中。
    • 將中 $(ProjectDir)\packages.config 所列的 packages 套件還原到資料夾中。 針對指定的每個封裝,除非指定,否則 -DisableParallelProcessing 請平行還原封裝。

範例

# Restore packages for a solution file
nuget restore a.sln

# Restore packages for a solution file, using MSBuild version 14.0 to load the solution and its project(s)
nuget restore a.sln -MSBuildVersion 14

# Restore packages for a project's packages.config file, with the packages folder at the parent
nuget restore proj1\packages.config -PackagesDirectory ..\packages

# Restore packages for the solution in the current folder, specifying package sources
nuget restore -source "https://api.nuget.org/v3/index.json;https://www.myget.org/F/nuget"