konfigurace prostředí dotnetup

Note

dotnetup je ve veřejné verzi Preview. Jeho funkce a chování se můžou před obecnou dostupností změnit.

Dotnetup může nakonfigurovat prostředí tak, aby zpřístupnilo sady SDK .NET a moduly runtime, které nainstaluje. Provede to nastavením následujících proměnných prostředí:

  • PATH: Zpřístupní dotnet příkaz na příkazovém řádku. Vývojové nástroje, jako jsou Visual Studio nebo sada C# Dev Kit, také používají PATH k vyhledání sad SDK a modulů runtime .NET.
  • DOTNET_ROOT: Říká spustitelným souborům aplikací závislých na rozhraní .NET, kde najít instalaci .NET a její sdílené moduly runtime.

Dotnetup podporuje různé režimy přístupu, které určují, kde jsou tyto proměnné prostředí nastavené. Režim přístupu můžete zvolit v počátečním nastavení dotnetup nebo později pomocí příkazu dotnetup env.

Režim přístupu Behavior
none Tyto proměnné prostředí nemění. Spusťte .NET pomocí dotnetup dotnet.
shell Upraví profil shellu tak, aby nastavil tyto proměnné prostředí. Procesy spuštěné z daného shellu používají sady sdk .NET a moduly runtime nainstalované nástrojem dotnetup.
everywhere Upraví systém PATH a nastaví uživatelskou proměnnou prostředí DOTNET_ROOT. K dispozici pouze na Windows.

Ve výchozím nastavení se dotnetup také přidá do PATH, bez ohledu na nastavení režimu přístupu. To lze ovládat pomocí dotnetup env set --dotnetup-on-path <true|false>.

Aspekty režimu Everywhere

Režim všude je ve výchozím nastavení na Windows tak, aby sady SDK a moduly runtime nainstalované nástrojem dotnetup byly dostupné z vývojových nástrojů a terminálů používajících cmd jako prostředí. Existuje však několik věcí, o nichž je potřeba vědět, především o tom, jak interaguje s instalacemi sady .NET SDK a modulu runtime pro celý počítač.

Instalace .NET pro celý počítač se nacházejí ve složce Program Files. Dají se nainstalovat pomocí instalačních programů, které je možné stáhnout ze stránky pro stahování .NET. Visual Studio nainstaluje sadu .NET SDK a modul runtime pro celý počítač a instalační programy pro aplikace závislé na rozhraní/frameworku můžou také nainstalovat .NET Runtime, na kterém závisejí, v umístění pro celý počítač.

V režimu everywhere má uživatelsky lokální kořenový adresář instalace .NET spravovaný nástrojem dotnetup přednost před kořenovým adresářem instalace .NET pro celý počítač. To znamená, že sady .NET SDK a runtime nainstalované ve složce Program Files nebudou k dispozici. Projekty, které závisí na těchto sadách SDK, se nepodaří sestavit, pokud není nainstalovaná odpovídající sada SDK. Pokud není nainstalovaný odpovídající modul runtime, aplikace závislé na rozhraní .NET se nespustí s chybou s informací, že je nutné nainstalovat nebo aktualizovat .NET ke spuštění této aplikace.

Pokud se chcete těmto selháním vyhnout, počáteční instalace dotnetup nabízí možnost migrovat existující instalace sady SDK a modulu runtime systému .NET. Můžete je také explicitně migrovat spuštěním příkazu dotnetup sdk install --migrate-from-system pro sady SDK nebo dotnetup runtime install --migrate-from-system pro moduly runtime.

Zapnutí nebo vypnutí režimu všude vyžaduje úpravu systémové proměnné PATH, která vyžaduje zvýšená oprávnění (tj. schválení výzvy UAC nebo „Spustit jako správce“). Důvodem je to, že instalační programy pro celý počítač pro .NET přidávají kořen instalace Program Files .NET do systémové PATH a systémová PATH má při vyhodnocování příkazů přednost před cestou PATH na úrovni uživatele. Proto musí dotnetup upravit systémovou proměnnou PATH, aby měla přednost kořenová složka instalace .NET nástroje dotnetup.

Vzhledem k tomu, že systémová proměnná PATH platí pro všechny uživatele, můžou tyto změny mít vliv na ostatní uživatele. Cesta přidaná do systémové CESTY je ve výchozím nastavení v místní složce AppData uživatele. Tato možnost nebude normálně přístupná jiným uživatelům, takže nebude mít vliv na to, která verze dotnet se vyřeší. Procesy se zvýšenými oprávněními (tj. spuštěné jako správce) by ale mohly cestu číst a mohly by neočekávaně vyhledávat sady SDK nebo moduly runtime .NET od jiného uživatele.

Podporované shelly

Podpora generování profilů a skriptů:

  • Bash
  • Z shell
  • Ryba
  • Pwsh (PowerShell Core)
  • PowerShell

Pokud nezadáte --shell, dotnetup zjistí aktuální shell. Explicitní shell použijte v případech, kdy detekce není k dispozici nebo když chcete aktualizovat jiný profil:

dotnetup env set shell --shell zsh

Uložený a pozorovaný stav

dotnetup.config.json ukládá vybraný režim přístupu a zda dotnetup má být zapnutý na PATH. dotnetup env show porovná danou konfiguraci s aktuálním profilem a prostředím. Hlásí odchylku, pokud pozorovaný stav neodpovídá.

Znovu použijte uloženou konfiguraci pro opravu posunu:

dotnetup env set

Aktuálně vybraný terminál

Změny profilu a prostředí systému Windows nepřepíší prostředí aktuálního procesu. Otevřete nový terminál, načtěte upravený profil nebo vyhodnoťte vygenerovaný skript.

Pro Bash nebo Z shell:

eval "$(dotnetup env script)"

Pro PowerShell:

dotnetup env script --shell pwsh | Invoke-Expression

env script se řídí uloženou konfigurací, pokud nepředáte možnosti výběru. K výběru vygenerovaného obsahu použijte --dotnet, --dotnetupnebo obojí.

Odebrat konfiguraci prostředí

Odeberte veškeré zapojení spravovaného prostředí:

dotnetup env clear

Tento příkaz je ekvivalentní:

dotnetup env set none --dotnetup-on-path false

Neodinstaluje sady SDK ani moduly runtime.