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;nupkg
的nuspec
nupkg
其中一個。-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
(預設值),quiet
或detailed
。
另請參閱 環境變數
備註
restore 命令會執行下列步驟:
判斷還原命令的作業模式。
projectPath 文件類型 行為 專案 (資料夾) NuGet 會尋找檔案 .sln
,並在找到時使用該檔案,否則會提供錯誤。(SolutionDir)\.nuget
會當做起始資料夾使用。.sln
檔案還原解決方案所識別的套件;如果使用 -SolutionDirectory
,則會提供錯誤。$(SolutionDir)\.nuget
會當做起始資料夾使用。packages.config
或項目檔還原檔案中列出的套件,解析並安裝相依性。 其他文件類型 檔案假設為 .sln
上述檔案;如果不是解決方案,NuGet 會提供錯誤。(未指定 projectPath) - NuGet 會在目前資料夾中尋找方案檔。 如果找到單一檔案,則會使用該檔案來還原套件;如果找到多個解決方案,NuGet 會產生錯誤。
- 如果沒有方案檔,NuGet 會尋找
packages.config
並使用該檔案來還原套件。 - 如果找不到任何解決方案或
packages.config
檔案,NuGet 會提供錯誤。
使用下列優先順序來判斷 packages 資料夾(如果找不到這些資料夾,NuGet 就會發生錯誤):
- 使用
-PackagesDirectory
指定的資料夾。 repositoryPath
中的值Nuget.Config
- 使用 指定的資料夾
-SolutionDirectory
$(SolutionDir)\packages
- 使用
還原解決方案的套件時,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"