Sdílet prostřednictvím


dotnet restore

Tento článek se vztahuje na: ✔️ .NET 6 SDK a novější verze

Název

dotnet restore - Obnoví závislosti a nástroje projektu.

Synopse

dotnet restore [<PROJECT>|<SOLUTION>|<FILE>]
  [-a|--arch <ARCHITECTURE>] [--configfile <FILE>] [--disable-build-servers]
  [--disable-parallel] [-f|--force] [--force-evaluate]
  [--ignore-failed-sources] [--interactive] [--lock-file-path <LOCK_FILE_PATH>]
  [--locked-mode] [--no-dependencies] [--no-http-cache]
  [--os <OS>] [--packages <PACKAGES_DIRECTORY>]
  [-r|--runtime <RUNTIME_IDENTIFIER>] [-s|--source <SOURCE>]
  [--tl:[auto|on|off]] [--ucr|--use-current-runtime] [--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

PROJECT | SOLUTION | FILE

Projekt nebo řešení nebo soubor jazyka C# (souborová aplikace), na kterém se má pracovat. Pokud není zadaný soubor, nástroj MSBuild vyhledá aktuální adresář projektu nebo řešení.

  • PROJECT je cesta a název souboru projektu jazyka C#, F# nebo jazyka Visual Basic nebo cesty k adresáři, který obsahuje soubor projektu jazyka C#, F# nebo Visual Basic.

  • SOLUTION je cesta a název souboru řešení (.sln nebo přípony .slnx) nebo cesta k adresáři, který obsahuje soubor řešení.

  • FILE je argument přidaný v .NET 10. Cesta a název souboru aplikace. Aplikace založené na souborech jsou obsaženy v jednom souboru, který je sestaven a spuštěn bez odpovídajícího souboru projektu (.csproj). Další informace najdete v tématu Vytváření souborových aplikací jazyka C#.

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.

  • --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-dependencies

    Při obnovování projektu s odkazy P2P (project-to-project), obnoví kořenový projekt, nikoli odkazy.

  • --no-http-cache

    Zakažte ukládání do mezipaměti HTTP pro balíčky.

  • --os

    Určuje cílový operační systém (OS). 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 --os linux identifikátoru RID nastaví na linux-x64.

    Představeno v sadě .NET SDK 10.0.100

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

  • --ucr|--use-current-runtime

    Použijte aktuální modul runtime jako cílový modul runtime.

  • --use-lock-file

    Umožňuje vygenerovat a použít soubor uzamčení projektu s obnovením.

  • --tl:[auto|on|off]

    Určuje, jestli se má pro výstup sestavení použít terminálový protokolovací nástroj . 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.

    Terminal Logger 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.

  • -v|--verbosity <LEVEL>

    Nastaví úroveň podrobností příkazu. Povolené hodnoty jsou q[uiet], , m[inimal]n[ormal], d[etailed]a diag[nostic]. Výchozí hodnota je minimal. Další informace najdete na webu LoggerVerbosity.

  • -?|-h|--help

    Vytiskne popis použití příkazu.

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 .

V .NET 8 a .NET 9 jsou ve výchozím nastavení auditovány pouze přímé odkazy na balíčky. Počínaje rozhraním .NET 10 nuGet ve výchozím nastavení audituje přímé itranzitivní 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í.