dotnet restore
本文適用于: ✔️.NET Core 3.1 SDK 和更新版本
名稱
dotnet restore
- 還原專案的相依性和工具。
概要
dotnet restore [<ROOT>] [--configfile <FILE>] [--disable-parallel]
[-f|--force] [--force-evaluate] [--ignore-failed-sources]
[--interactive] [--lock-file-path <LOCK_FILE_PATH>] [--locked-mode]
[--no-cache] [--no-dependencies] [--packages <PACKAGES_DIRECTORY>]
[-r|--runtime <RUNTIME_IDENTIFIER>] [-s|--source <SOURCE>]
[--use-lock-file] [-v|--verbosity <LEVEL>]
dotnet restore -h|--help
描述
dotnet restore
命令會使用 NuGet 來還原相依性以及專案檔中指定的專案特定工具。 在大部分情況下,您不需要明確使用 dotnet restore
命令,因為當您執行下列命令時,NuGet 還原會隱含地執行:
有時候,使用這些命令執行隱含 NuGet 還原可能很不方便。 例如,某些自動化系統,像是建置系統,必須明確呼叫 dotnet restore
以控制還原發生的時間,進而控制網路使用量。 若要防止隱含 NuGet 還原,您可以使用 --no-restore
旗標搭配上述任何命令來停用隱含還原。
注意
在還原作業期間簽署的套件驗證需要憑證根憑證存放區,這同時適用于程式碼簽署和時間戳記。 如需詳細資訊 ,請參閱 NuGet 簽署的套件驗證 。
指定摘要
若要還原相依性,NuGet 需要套件所在的摘要。 摘要通常透過 nuget.config 組態檔提供。 安裝 .NET SDK 時,會提供預設組態檔。 若要指定其他摘要,請執行下列其中一項:
- 在專案目錄中建立您自己的 nuget.config 檔案。 如需詳細資訊,請參閱本文稍後的 常見 NuGet 組態 和 nuget.config差異 。
- 使用
dotnet nuget
之類的dotnet nuget add source
命令。
您可以使用 選項覆寫 nuget.config 摘要 -s
。
如需如何使用已驗證摘要的詳細資訊,請參閱 從已驗證摘要取用套件。
全域套件資料夾
針對相依性,您可以使用 --packages
引數指定已還原套件在還原作業期間的放置位置。 如果未指定,則會使用預設的 NuGet 套件快取,它位於所有作業系統上使用者主目錄的 .nuget/packages
目錄中。 例如,Linux 上的 /home/user1 或 Windows 上的 C:\Users\user1。
專案特定工具
針對專案特定工具,dotnet restore
會先還原在其中封裝工具的套件,然後繼續還原其專案檔中所指定的工具相依性。
nuget.config 差異
nuget.config 檔案中設定 (如果有的話) 會影響 dotnet restore
命令的行為。 例如,在 nuget.config 中設定 globalPackagesFolder
會將還原的 NuGet 套件置於所指定資料夾。 這是在 dotnet restore
命令上指定 --packages
選項的替代方式。 如需詳細資訊,請參閱 nuget.config 參考。
dotnet restore
會忽略三個特定設定:
-
系結重新導向不適用於
<PackageReference>
元素,而 .NET 僅支援<PackageReference>
NuGet 套件的元素。 -
此設定為 Visual Studio 特定,不適用於 .NET。 .NET 不會使用
packages.config
檔案,而是使用<PackageReference>
NuGet 套件的 元素。 -
.NET 5.0.100 SDK 已新增支援跨平臺套件簽章驗證。
工作負載資訊清單下載
當您執行此命令時,它會起始工作負載廣告資訊清單的非同步背景下載。 如果下載仍在此命令完成時執行,則會停止下載。 如需詳細資訊,請參閱 廣告資訊清單。
引數
ROOT
要還原之專案檔的選用路徑。
選項
--configfile <FILE>
NuGet 組態檔 (nuget.config) 使用。 如果指定,則只會使用此檔案中的設定。 如果未指定,將會使用來自目前目錄的組態檔階層。 如需詳細資訊,請參閱 常見的 NuGet 組態。
--disable-parallel
停用平行還原多個專案。
--force
即使最後的還原成功,仍強制解析所有相依性。 指定這個旗標等同於刪除 project.assets.json 檔案。
--force-evaluate
強制還原以重新評估所有相依性,即使鎖定檔案已經存在也一樣。
-?|-h|--help
列印出如何使用 命令的描述。
--ignore-failed-sources
如果有套件符合版本需求,則只會警告有關失敗的來源。
--interactive
可讓命令停止,並等候使用者輸入或進行動作。 例如完成驗證。
--lock-file-path <LOCK_FILE_PATH>
寫入專案鎖定檔案的輸出位置。 根據預設,這會 PROJECT_ROOT\packages.lock.json。
--locked-mode
不允許更新專案鎖定檔。
--no-cache
指定不要快取 HTTP 要求。
--no-dependencies
在還原包含專案對專案 (P2P) 參考的專案時,會還原根專案,而非參考。
--packages <PACKAGES_DIRECTORY>
指定已還原套件的目錄。
-r|--runtime <RUNTIME_IDENTIFIER>
指定套件還原的執行階段。 這用來針對 .csproj 檔案內
<RuntimeIdentifiers>
標記中未明確列出的執行階段還原套件。 如需執行階段識別項 (RID) 清單,請參閱 RID 目錄。-s|--source <SOURCE>
指定要在還原作業期間使用的 NuGet 套件來源 URI。 此設定會覆寫 nuget.config 檔案中指定的所有來源。 多次指定這個選項,即可提供多個來源。
--use-lock-file
啟用專案鎖定檔,以便產生並用於還原。
-v|--verbosity <LEVEL>
設定命令的詳細資訊層級。 允許的值為
q[uiet]
、m[inimal]
、n[ormal]
、d[etailed]
和diag[nostic]
。 預設為minimal
。 如需詳細資訊,請參閱LoggerVerbosity。
範例
還原目前目錄中專案的相依性和工具︰
dotnet restore
還原在指定路徑中找到之
app1
專案的相依性和工具︰dotnet restore ./projects/app1/app1.csproj
使用提供為來源的檔案路徑,還原目前目錄中專案的相依性和工具︰
dotnet restore -s c:\packages\mypackages
使用提供為來源的兩個檔案路徑,還原目前目錄中專案的相依性和工具︰
dotnet restore -s c:\packages\mypackages -s c:\packages\myotherpackages
在目前目錄中還原專案的相依性和工具,其中顯示詳細輸出:
dotnet restore --verbosity detailed