Řešení potíží s dotnetup

Note

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

Tento článek popisuje běžné dotnetup problémy a jejich řešení.

Shromažďování diagnostických informací

Před řešením potíží shromážděte tyto informace:

  • dotnetup Zobrazte verzi, architekturu, identifikátor runtime a ověřené instalace:

    dotnetup --info
    
  • Zobrazte sledované specifikace instalace a instalace a ověřte soubory na disku:

    dotnetup list
    
  • Porovnejte konfiguraci uloženého prostředí s aktuálním prostředím:

    dotnetup env show
    
  • Spusťte znovu neúspěšný příkaz s podrobným výstupem. Příklady:

    dotnetup sdk install 10.0 --verbosity detailed
    

Projekty se nesestaví nebo se aplikace po instalaci nespustí

Příznak: Po nastavení dotnetup v režimu everywhere ve Windows nyní nelze sestavit projekty, které se dříve sestavovaly úspěšně. Nebo aplikace závislé na frameworku zobrazují tuto chybu:

You must install or update .NET to run this application.

Příčina: V everywhere režimu má instalace spravovaná pomocí dotnetup přednost před instalací na úrovni počítače v programových souborech. Sady SDK a moduly runtime, které existují pouze v instalaci na úrovni počítače, nejsou k dispozici.

Řešení: Migrujte sady SDK a moduly runtime pro celý systém do instalace spravované dotnetup:

dotnetup sdk install --migrate-from-system
dotnetup runtime install --migrate-from-system

Nebo změňte režim přístupu na shell nebo none. Další informace najdete v tématu co je třeba zvážit u režimu Everywhere.

dotnet nepoužívá instalaci spravovanou pomocí dotnetup

Příznak: Příkaz dotnet v terminálu nepoužívá sady SDK, které nainstaloval dotnetup.

Příčina: Terminál byl otevřen předtím, než dotnetup změnil(a) prostředí, nebo konfigurace prostředí neodpovídá uložené konfiguraci.

Solution:

  1. Otevřete nový terminál. Změny profilu shellu nebo proměnných prostředí systému Windows nemají vliv na terminály, které jsou již otevřené.

  2. Spusťte dotnetup env show. Pokud hlásí odchylku, spusťte znovu dotnetup env set, aby se znovu použila uložená konfigurace.

  3. Chcete-li nakonfigurovat pouze aktuální terminál, vyhodnoťte výstup dotnetup env script. Například v Bash nebo zsh:

    eval "$(dotnetup env script)"
    

    V prostředí PowerShell:

    dotnetup env script --shell pwsh | Invoke-Expression
    

Další informace najdete v tématu Správa prostředí dotnetup.

Instalační cesta už obsahuje nesledovanou instalaci.

Příznak: Příkaz install selže s touto chybou:

The install path '<path>' already contains a .NET installation that is not tracked by dotnetup. To avoid conflicts, use a different install path, remove the existing installation first, or use the --untracked option to install without tracking.

Příčina:dotnetup nenainstaluje sledované soubory do složky, která obsahuje .NET instalaci, kterou nesleduje. Tato kontrola zabraňuje dotnetup kombinování souborů se soubory, které vlastní jiný nástroj.

Řešení: Udělejte jednu z těchto věcí:

  • Vyberte jinou složku pomocí možnosti --install-path.
  • Odstraňte stávající instalaci ze složky.
  • Pokud složku vlastní jiný nástroj, použijte tuto --untracked možnost. dotnetup nevypisuje, neaktualizuje ani neodebere nesledované soubory.

Další informace najdete v tématu Správa vlastních kořenových adresářů instalace.

Spustitelný soubor dotnet je používán.

Příznak: V Windows se v instalačním příkazu zobrazí upozornění podobné této zprávě:

Warning: Could not update dotnet executable at '<path>' - it is currently in use by another process. Close all running .NET applications and try again. The existing muxer will be retained. ...

Příčina: Spuštěný proces používá dotnet spustitelný soubor, takže dotnetup ho nemůže nahradit. Instalace pokračuje s existujícím dotnet spustitelným souborem. Nový modul runtime může vyžadovat novější dotnet spustitelný soubor.

Řešení: Zavřete všechny spuštěné .NET aplikace, prostředí IDEs a servery pro sestavení. Potom spusťte příkaz install znovu. Pokud chcete, aby příkaz selhal místo pokračování s upozorněním, použijte tuto --require-muxer-update možnost.

Je spuštěn další proces dotnetup.

Příznak: Příkaz zobrazí tuto zprávu a čeká:

Another dotnetup process is running. Waiting for it to finish...

Příčina:dotnetup serializuje změny stavu sdílené instalace. Další dotnetup příkaz mění tentýž stav.

Řešení: Počkejte na dokončení druhého příkazu. Pokud neběží žádný jiný dotnetup proces, vyhledejte dotnetup procesy, které přestaly reagovat, a ukončete je.

manifest je poškozen.

Příznak: Příkaz selže s touto chybou:

The dotnetup manifest at <path> is corrupt. Consider deleting it and re-running the install.

Zpráva může také říci, že soubor byl změněn mimo dotnetup.

Příčina: Soubor dotnetup_manifest.json není platný. Soubor mohl být změněn jiným procesem nebo ruční úpravou.

Řešení: Odstraňte soubor manifestu a jeho soubor .sha256 z datového adresáře dotnetup. Potom znovu nainstalujte sady SDK a moduly runtime, které potřebujete. Vzhledem k tomu, že manifest již nesleduje existující kořenový adresář instalace, budete pravděpodobně muset nejprve tuto složku odstranit. Umístění datového adresáře viz Aktualizace nebo odebrání dotnetup.

Note

Neupravujte soubor manifestu. Pomocí příkazů dotnetup změňte sledovaný stav.

Konfigurační soubor je poškozený.

Příznak: Příkaz zobrazí toto upozornění:

Warning: The dotnetup config file at <path> appears to be corrupted and could not be read: ...

Příčina: Soubor dotnetup.config.json není platný. dotnetup ignoruje soubor.

Řešení: Spusťte dotnetup env set v požadovaném režimu přístupu nebo spusťte dotnetup init znovu. Tyto příkazy zapisují novou konfiguraci.

Profil shellu obsahuje neplatný blok dotnetup.

Příznak: Příkaz env selže s chybou podobnou této zprávě:

The shell profile '<path>' contains a malformed dotnetup block: '<begin marker>' does not have a matching '<end marker>'. Remove or repair the block manually and try again.

Příčina:dotnetup označí řádky, které přidá do profilu shellu, úvodními a závěrečnými komentáři. Chybí jeden z těchto komentářů.

Řešení: Otevřete profil shellu v textovém editoru. Odeberte neúplný blok dotnetup nebo přidejte chybějící značku. Pak příkaz spusťte znovu.

Zvýšení úrovně oprávnění bylo zrušeno.

Příznak: V systému Windows se při příkazu, který zapíná nebo vypíná režim everywhere, zobrazí tato zpráva:

Elevation was cancelled. The system PATH was not modified.

Příčina: Změny systému PATH vyžadují zvýšená oprávnění. Výzva Řízení uživatelských účtů (UAC) byla zrušena.

Řešení: Spusťte příkaz znovu a potvrďte výzvu Řízení uživatelských účtů. Nebo vyberte režim přístupu shell nebo none, který nevyžaduje zvýšení oprávnění.

Platnost manifestu vydání vypršela.

Příznak: Instalace nebo aktualizace selže během ověřování manifestu vydání s kódem selhání ExpiredNow.

Příčina: Aktuální systémový čas je roven času vypršení platnosti manifestu nebo je po něm. Platnost manifestu mohla vypršet nebo systémové hodiny můžou být nesprávné. Platný podpis nečiní manifest, jehož platnost vypršela, přijatelným.

Solution:

  1. Zkontrolujte datum a čas systému. V případě potřeby hodiny upravte.
  2. Zkuste příkaz zopakovat. Pokud proxy server obsluhuje metadata vydaných verzí uložená v mezipaměti, požádejte správce, aby zkontroloval, zda poskytuje manifest s prošlou platností.
  3. Pokud je systémový čas správný a problém přetrvává, nahlaste problém a přiložte podrobný výstup příkazu.

Neupravujte manifest ani neměňte hodiny tak, aby se obešly kontroly vypršení platnosti. Další informace naleznete v tématu Vypršení platnosti manifestu.

Instalace je blokována zásadou IT.

Příznak: Instalace každodenního nebo předběžného sestavení selže se zprávou, že zásady IT vyžadují stahování podepsané kódem.

Příčina: Správce na počítači zablokoval stahování nepodepsaných souborů.

Řešení: Nainstalujte vydanou verzi nebo požádejte správce o vyčištění zásady. Další informace naleznete v tématu Jak dotnetup ověřuje stahování.

Nahlášení problému

Pokud tento článek váš problém nevyřeší, vyhledejte stávající problémy dotnetup. Pokud nenajdete shodu, otevřete nový problém v úložišti dotnet/sdk pomocí šablony problému dotnetup . Zahrňte výstup z dotnetup --info a výstup neúspěšného příkazu pomocí --verbosity detailed.

V případě dotazů a návrhů použijte diskuze dotnetup.

Viz také