dotnet restore
Tento článek se vztahuje na: ✔️ .NET Core 3.1 SDK a novější verze
Název
dotnet restore
- Obnoví závislosti a nástroje projektu.
Synopse
dotnet restore [<ROOT>] [--configfile <FILE>] [--disable-build-servers]
[--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>]
[--tl:[auto|on|off]] [--use-current-runtime, --ucr [true|false]]
[--use-lock-file] [-v|--verbosity <LEVEL>]
dotnet restore -h|--help
Popis
Projekt .NET obvykle odkazuje na externí knihovny v balíčcích NuGet , které poskytují další funkce. Na tyto externí závislosti se odkazuje v souboru projektu (.csproj nebo .vbproj). Když příkaz spustíte, rozhraní příkazového dotnet restore
řádku .NET CLI použije NuGet k vyhledání těchto závislostí a jejich případné stažení. Zajišťuje také, že všechny závislosti vyžadované projektem jsou vzájemně kompatibilní a že mezi nimi nejsou žádné konflikty. Po dokončení příkazu jsou všechny závislosti vyžadované projektem k dispozici v místní mezipaměti a rozhraní .NET CLI je může použít k sestavení a spuštění aplikace.
Ve většině případů nemusíte příkaz explicitně používat dotnet restore
, protože pokud je nutné provést obnovení NuGet, spustí se implicitně následující příkazy:
Někdy může být nepřístupné spustit implicitní obnovení NuGet pomocí těchto příkazů. Například některé automatizované systémy, jako jsou systémy sestavení, musí explicitně volat dotnet restore
řízení, kdy dojde k obnovení, aby mohly řídit využití sítě. Pokud chcete zabránit implicitní obnovení NuGetu, můžete příznak použít --no-restore
s libovolným z těchto příkazů.
Poznámka:
Ověření podepsaného balíčku během operací obnovení vyžaduje kořenové úložiště certifikátů, které je platné pro podepisování kódu i časové razítko. Další informace najdete v tématu Ověření podepsaného balíčku NuGet.
Zadání informačních kanálů
K obnovení závislostí potřebuje NuGet informační kanály, ve kterých se balíčky nacházejí. Informační kanály jsou obvykle poskytovány prostřednictvím konfiguračního souboru nuget.config . Při instalaci sady .NET SDK je k dispozici výchozí konfigurační soubor. Pokud chcete zadat další informační kanály, udělejte jednu z těchto věcí:
- V adresáři projektu vytvořte vlastní soubor nuget.config . Další informace najdete v části Běžné konfigurace NuGet a rozdíly nuget.config dále v tomto článku.
- Použijte
dotnet nuget
příkazy, napříkladdotnet nuget add source
.
Informační kanály nuget.config můžete přepsat pomocí -s
možnosti.
Informace o tom, jak používat ověřené informační kanály, najdete v tématu Využívání balíčků z ověřených informačních kanálů.
Globální složka balíčků
U závislostí můžete určit, kam se obnovené balíčky umístí během operace obnovení pomocí argumentu --packages
. Pokud není zadáno, použije se výchozí mezipaměť balíčků NuGet, která se nachází v .nuget/packages
adresáři v domovském adresáři uživatele ve všech operačních systémech. Například /home/user1 v Linuxu nebo C:\Users\user1 ve Windows.
Nástroje specifické pro projekt
Pro nástroje specifické pro projekt nejprve obnoví balíček, dotnet restore
ve kterém je nástroj zabalený, a pak pokračuje k obnovení závislostí nástroje, jak je uvedeno v souboru projektu.
rozdíly v nuget.config
Chování dotnet restore
příkazu je ovlivněno nastavením v souboru nuget.config , pokud je k dispozici. Například nastavení globalPackagesFolder
v nuget.config umístí obnovené balíčky NuGet do zadané složky. Toto je alternativa k určení --packages
možnosti příkazu dotnet restore
. Další informace najdete v referenčních informacích nuget.config.
Existují tři konkrétní nastavení, která dotnet restore
ignorují:
-
Přesměrování vazby nefungují s
<PackageReference>
elementy a .NET podporuje<PackageReference>
pouze prvky pro balíčky NuGet. -
Toto nastavení je specifické pro Visual Studio a nevztahuje se na .NET. .NET nepoužívá
packages.config
soubor a místo toho používá<PackageReference>
elementy pro balíčky NuGet. -
V sadě SDK .NET 5.0.100 byla přidána podpora ověření podpisu balíčku pro různé platformy.
Stažení manifestu úloh
Při spuštění tohoto příkazu zahájí asynchronní stahování reklamních manifestů pro úlohy. Pokud stahování po dokončení tohoto příkazu stále běží, stahování se zastaví. Další informace naleznete v tématu Reklamní manifesty.
Argumenty
ROOT
Volitelná cesta k souboru projektu, který chcete obnovit.
Možnosti
-a|--arch <ARCHITECTURE>
Určuje cílovou architekturu. Toto je zkratka pro nastavení identifikátoru runtime (RID), kde se zadaná hodnota zkombinuje s výchozím identifikátorem RID. Například na
win-x64
počítači se zadáním--arch x86
identifikátoru RID nastaví nawin-x86
. Pokud použijete tuto možnost, tuto možnost nepoužívejte-r|--runtime
. K dispozici od verze .NET 6 Preview 7.
--configfile <FILE>
Konfigurační soubor NuGet (nuget.config), který se má použít. Pokud je zadáno, použijí se pouze nastavení z tohoto souboru. Pokud není zadáno, použije se hierarchie konfiguračních souborů z aktuálního adresáře. Další informace najdete v tématu Běžné konfigurace NuGet.
--disable-build-servers
Vynutí příkaz ignorovat všechny trvalé buildové servery. Tato možnost poskytuje konzistentní způsob, jak zakázat veškeré použití ukládání sestavení do mezipaměti, což vynutí sestavení úplně od začátku. Sestavení, které nespoléhá na mezipaměti, je užitečné, když jsou mezipaměti z nějakého důvodu poškozené nebo nesprávné. K dispozici od sady .NET 7 SDK.
--disable-parallel
Zakáže paralelní obnovení více projektů.
--force
Vynutí vyřešení všech závislostí, i když bylo poslední obnovení úspěšné. Určení tohoto příznaku je stejné jako odstranění souboru project.assets.json .
--force-evaluate
Vynutí obnovení, aby znovu zhodnotil všechny závislosti, i když již soubor zámku existuje.
-?|-h|--help
Vytiskne popis použití příkazu.
--ignore-failed-sources
Upozornění pouze na neúspěšné zdroje, pokud existují balíčky, které splňují požadavek na verzi.
--interactive
Umožňuje příkazu zastavit a čekat na uživatelský vstup nebo akci. Například k dokončení ověřování.
--lock-file-path <LOCK_FILE_PATH>
Výstupní umístění, kde je zamčený soubor zámku projektu. Ve výchozím nastavení je to PROJECT_ROOT\packages.lock.json.
--locked-mode
Nepovolujte aktualizaci souboru uzamčení projektu.
--no-cache
Určuje, že se nemají ukládat požadavky HTTP do mezipaměti.
--no-dependencies
Při obnovování projektu s odkazy P2P (project-to-project), obnoví kořenový projekt, nikoli odkazy.
--packages <PACKAGES_DIRECTORY>
Určuje adresář pro obnovené balíčky.
-r|--runtime <RUNTIME_IDENTIFIER>
Určuje modul runtime pro obnovení balíčku. Slouží k obnovení balíčků pro moduly runtime, které nejsou explicitně uvedeny ve
<RuntimeIdentifiers>
značce v souboru .csproj . Seznam identifikátorů runtime (RID) najdete v katalogu RID.-s|--source <SOURCE>
Určuje identifikátor URI zdroje balíčku NuGet, který se má použít během operace obnovení. Toto nastavení přepíše všechny zdroje zadané v souborech nuget.config . Tuto možnost lze zadat vícenásobným zadáním této možnosti.
--tl:[auto|on|off]
Určuje, jestli se má protokolovací nástroj terminálu použít pro výstup sestavení. Výchozí hodnota je
auto
, která nejprve ověří prostředí před povolením protokolování terminálu. Prostředí ověřuje, že terminál dokáže používat moderní výstupní funkce a nepoužívá přesměrovaný standardní výstup, než povolí nový protokolovací modul.on
přeskočí kontrolu prostředí a povolí protokolování terminálu.off
přeskočí kontrolu prostředí a použije výchozí protokolovací nástroj konzoly.Protokolovací nástroj terminálu ukazuje fázi obnovení následovanou fází sestavení. Během každé fáze se aktuálně stavební projekty zobrazují v dolní části terminálu. Každý projekt, který vytváří výstupy cíle NÁSTROJE MSBuild, který se právě sestavuje, i dobu strávenou na daném cíli. Další informace o sestavení najdete v těchto informacích. Po dokončení sestavení projektu se zapíše jeden oddíl "sestavení dokončeno", který zachycuje:
- Název sestaveného projektu.
- Cílová architektura (pokud je cílená na více cílů).
- Stav tohoto sestavení.
- Primární výstup tohoto sestavení (který je hypertextový odkaz).
- Všechna diagnostika vygenerovaná pro tento projekt.
Tato možnost je dostupná od verze .NET 8.
--use-current-runtime, --ucr [true|false]
RuntimeIdentifier
Nastaví na platformu přenosnouRuntimeIdentifier
na základě počítače. K tomu dochází implicitně s vlastnostmi, které vyžadujíRuntimeIdentifier
, napříkladSelfContained
,PublishAot
,PublishSelfContained
,PublishSingleFile
aPublishReadyToRun
. Pokud je vlastnost nastavena na false, implicitní rozlišení již nebude k dispozici.--use-lock-file
Umožňuje vygenerovat a použít soubor uzamčení projektu s obnovením.
-v|--verbosity <LEVEL>
Nastaví úroveň podrobností příkazu. Povolené hodnoty jsou
q[uiet]
, ,n[ormal]
m[inimal]
,d[etailed]
adiag[nostic]
. Výchozí hodnota jeminimal
. Další informace najdete na webu LoggerVerbosity.
Příklady
Obnovení závislostí a nástrojů pro projekt v aktuálním adresáři:
dotnet restore
Obnovte závislosti a nástroje pro
app1
projekt nalezený v dané cestě:dotnet restore ./projects/app1/app1.csproj
Obnovte závislosti a nástroje pro projekt v aktuálním adresáři pomocí cesty k souboru zadané jako zdroj:
dotnet restore -s c:\packages\mypackages
Obnovte závislosti a nástroje pro projekt v aktuálním adresáři pomocí dvou cest k souborům, které jsou k dispozici jako zdroje:
dotnet restore -s c:\packages\mypackages -s c:\packages\myotherpackages
Obnovení závislostí a nástrojů pro projekt v aktuálním adresáři s podrobným výstupem:
dotnet restore --verbosity detailed
Audit ohrožení zabezpečení
Počínaje .NET 8 dotnet restore
zahrnuje auditování zabezpečení NuGet. Toto auditování vytvoří sestavu ohrožení zabezpečení s názvem ovlivněného balíčku, závažností chyby zabezpečení a odkazem na poradce pro další podrobnosti.
Pokud chcete zrušit auditování zabezpečení, nastavte <NuGetAudit>
vlastnost MSBuild do false
souboru projektu.
Pokud chcete načíst známou datovou sadu ohrožení zabezpečení, ujistěte se, že máte NuGet.org centrální registr definovaný jako jeden ze zdrojů balíčků:
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
Úroveň, na které auditování selže, můžete nakonfigurovat nastavením <NuGetAuditLevel>
vlastnosti MSBuild. Možné hodnoty jsou low
, moderate
, high
a critical
. Pokud například chcete zobrazit pouze střední, vysoké a kritické rady, můžete vlastnost nastavit na moderate
hodnotu .
Počínaje rozhraním .NET 9 nuGet ve výchozím nastavení audituje přímé i tranzitivní odkazy na balíčky. V .NET 8 jsou auditovány pouze přímé odkazy na balíčky. Režim můžete změnit nastavením <NuGetAuditMode>
vlastnosti MSBuild na direct
nebo all
.
Další informace najdete v tématu Auditování závislostí balíčků pro ohrožení zabezpečení.