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í:

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í:

  • bindingRedirects

    Přesměrování vazby nefungují s <PackageReference> elementy a .NET podporuje <PackageReference> pouze prvky pro balíčky NuGet.

  • řešení

    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.

  • trustedSigners

    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í na win-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řenosnou RuntimeIdentifier na základě počítače. K tomu dochází implicitně s vlastnostmi, které vyžadují RuntimeIdentifier, například SelfContained, PublishAot, PublishSelfContained, PublishSingleFilea PublishReadyToRun. 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]a diag[nostic]. Výchozí hodnota je minimal. 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, higha critical. Pokud například chcete zobrazit pouze střední, vysoké a kritické rady, můžete vlastnost nastavit na moderatehodnotu .

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í.