Rozwiązywanie problemów z dotnetup

Uwaga

dotnetup jest dostępna w publicznej wersji zapoznawczej. Jego funkcje i zachowanie mogą ulec zmianie przed ogólną dostępnością.

W tym artykule opisano typowe dotnetup problemy i sposoby ich rozwiązywania.

Zbieranie informacji diagnostycznych

Przed rozwiązaniem problemu zbierz następujące informacje:

  • Pokaż dotnetup wersję, architekturę, identyfikator środowiska uruchomieniowego i zweryfikowane instalacje:

    dotnetup --info
    
  • Pokaż śledzone specyfikacje instalacji i instalacje oraz sprawdź pliki na dysku:

    dotnetup list
    
  • Porównaj zapisaną konfigurację środowiska z bieżącym środowiskiem:

    dotnetup env show
    
  • Uruchom ponownie nieudane polecenie ze szczegółowymi danymi wyjściowymi. Przykład:

    dotnetup sdk install 10.0 --verbosity detailed
    

Projekty nie są kompilowane, a aplikacje nie są uruchamiane po skonfigurowaniu

Objaw: Po skonfigurowaniu dotnetup w trybie everywhere w systemie Windows projekty, które wcześniej kompilowały się poprawnie, teraz nie kompilują się. Lub aplikacje zależne od struktury pokazują ten błąd:

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

Przyczyna: W everywhere trybie instalacja zarządzana przez dotnetup ma pierwszeństwo przed instalacją systemową w folderze Program Files. Zestawy SDK i środowiska uruchomieniowe, które istnieją tylko w instalacji obejmującej cały komputer, nie są dostępne.

Rozwiązanie: Przeprowadź migrację zestawów SDK i środowisk uruchomieniowych dla całej maszyny do instalacji zarządzanej przez dotnetup:

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

Możesz też zmienić na tryb dostępu shell lub none. Aby uzyskać więcej informacji, zobacz Uwagi dotyczące trybu Everywhere.

dotnet nie używa instalacji zarządzanej przez dotnetup

Objaw: Polecenie dotnet w terminalu nie używa zestawów SDK, które zainstalował(-o) dotnetup.

Przyczyna: Terminal był otwarty, zanim dotnetup zmienił środowisko, lub konfiguracja środowiska nie jest zgodna z przechowywaną konfiguracją.

Rozwiązanie:

  1. Otwórz nowy terminal. Zmiany profilu powłoki lub zmiennych środowiskowych systemu Windows nie mają wpływu na terminale, które są już otwarte.

  2. Uruchom dotnetup env show. Jeśli zgłasza rozbieżność, uruchom polecenie dotnetup env set, aby ponownie zastosować przechowywaną konfigurację.

  3. Aby skonfigurować tylko bieżący terminal, wykonaj dane wyjściowe polecenia dotnetup env script. Na przykład w powłoce Bash lub zsh:

    eval "$(dotnetup env script)"
    

    W programie PowerShell:

    dotnetup env script --shell pwsh | Invoke-Expression
    

Aby uzyskać więcej informacji, zobacz Zarządzanie środowiskiem dotnetup.

Ścieżka instalacji zawiera już nieśledzoną instalację

Objaw: Polecenie instalacji kończy się niepowodzeniem z powodu tego błędu:

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.

Przyczyna:dotnetup Program nie instaluje śledzonych plików w folderze zawierającym instalację .NET, która nie jest śledzona. Ta kontrola uniemożliwia dotnetup mieszanie swoich plików z plikami należącymi do innego narzędzia.

Rozwiązanie: Wykonaj jedną z następujących czynności:

  • Wybierz inny folder za pomocą opcji --install-path.
  • Usuń istniejącą instalację z folderu .
  • Jeśli inne narzędzie jest właścicielem folderu, użyj opcji --untracked. dotnetup nie wyświetla, nie aktualizuje ani nie usuwa nieśledzonych plików.

Aby uzyskać więcej informacji, zobacz Zarządzanie niestandardowymi głównymi katalogami instalacyjnymi.

Plik wykonywalny dotnet jest w użyciu

Objaw: W Windows polecenie instalacji wyświetla ostrzeżenie podobne do następującego:

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

Przyczyna: Uruchomiony proces używa pliku wykonywalnego dotnet, więc dotnetup nie może go zastąpić. Instalacja jest kontynuowana przy użyciu istniejącego dotnet pliku wykonywalnego. Nowe środowisko wykonawcze może wymagać nowszego pliku wykonywalnego dotnet.

Rozwiązanie: Zamknij wszystkie uruchomione aplikacje .NET, środowiska IDE i serwery kompilacji. Następnie ponownie uruchom polecenie instalacji. Aby polecenie zakończyło się niepowodzeniem zamiast kontynuować z ostrzeżeniem, użyj opcji --require-muxer-update.

Jest uruchomiony inny proces dotnetup

Objaw: Polecenie wyświetla ten komunikat i czeka:

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

Przyczyna:dotnetup powoduje sekwencyjne zapisywanie zmian we współdzielonym stanie instalacji. Inne dotnetup polecenie zmienia ten sam stan.

Rozwiązanie: Poczekaj na zakończenie innego polecenia. Jeśli żaden inny dotnetup proces nie działa, poszukaj dotnetup procesów, które przestały odpowiadać, i zakończ je.

Plik manifestu jest uszkodzony

Objaw: Polecenie kończy się niepowodzeniem z powodu tego błędu:

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

Komunikat może również powiedzieć, że plik został zmodyfikowany poza programem dotnetup.

Przyczyna: Plik dotnetup_manifest.json jest nieprawidłowy. Inny proces lub ręczna edycja mogła zmienić plik.

Rozwiązanie: Usuń plik manifestu i jego .sha256 plik z katalogu danych dotnetup. Następnie zainstaluj ponownie potrzebne zestawy SDK i środowiska uruchomieniowe. Ponieważ manifest nie śledzi już istniejącego katalogu głównego instalacji, może być również konieczne najpierw usunięcie tego folderu. Aby uzyskać informacje o lokalizacji katalogu danych, zobacz Aktualizowanie lub usuwanie dotnetup.

Uwaga

Nie edytuj pliku manifestu. Użyj dotnetup poleceń, aby zmienić stan śledzenia.

Plik konfiguracji jest uszkodzony

Objaw: Polecenie wyświetla to ostrzeżenie:

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

Przyczyna: Plik dotnetup.config.json jest nieprawidłowy. dotnetup Ignoruje plik.

Rozwiązanie: Uruchom polecenie dotnetup env set z żądanym trybem dostępu lub uruchom dotnetup init ponownie. Te polecenia zapisują nową konfigurację.

Profil powłoki zawiera nieprawidłowo sformułowany blok dotnetup

Objaw: Polecenie env kończy się niepowodzeniem z powodu błędu podobnego do następującego komunikatu:

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.

Przyczyna:dotnetup oznacza wiersze, które dodaje do profilu powłoki, komentarzami początku i końca. Brakuje jednego z tych komentarzy.

Rozwiązanie: Otwórz profil powłoki w edytorze tekstów. Usuń niekompletny blok dotnetup lub dodaj brakujący znacznik. Następnie ponownie uruchom polecenie.

Anulowano podniesienie

Objaw: W systemie Windows polecenie, które włącza lub wyłącza tryb everywhere, wyświetla następujący komunikat:

Elevation was cancelled. The system PATH was not modified.

Przyczyna: Zmiany w systemie PATH wymagają uprawnień administratora. Monit funkcji Kontrola konta użytkownika (UAC) został anulowany.

Rozwiązanie: Uruchom ponownie polecenie i zatwierdź monit kontroli konta użytkownika. Możesz też wybrać tryb dostępu shell lub none, który nie wymaga uprawnień administratora.

Manifest wydania wygasł

Objaw: Instalacja lub aktualizacja kończy się niepowodzeniem podczas weryfikacji manifestu wydania z kodem niepowodzenia ExpiredNow.

Przyczyna: Bieżący czas systemowy przypada na moment wygaśnięcia manifestu lub po nim. Manifest mógł wygasnąć lub zegar systemowy może być niepoprawny. Prawidłowy podpis nie sprawia, że wygasły manifest jest akceptowalny.

Rozwiązanie:

  1. Sprawdź datę i godzinę systemu. Popraw zegar, jeśli to konieczne.
  2. Spróbuj ponownie wykonać polecenie. Jeśli serwer proxy obsługuje buforowane metadane wydania, poproś administratora o sprawdzenie, czy obsługuje wygasły manifest.
  3. Jeśli zegar jest poprawny, a awaria nadal występuje, zgłoś problem ze szczegółowymi danymi wyjściowymi polecenia.

Nie edytuj manifestu ani nie zmieniaj zegara, aby pominąć sprawdzanie terminu ważności. Aby uzyskać więcej informacji, zobacz Wygaśnięcie manifestu.

Instalacja jest blokowana przez zasady IT

Objaw: Instalacja kompilacji dziennej lub wstępnej kończy się niepowodzeniem z komunikatem informującym, że zasady IT wymagają pobierania plików podpisanych cyfrowo.

Przyczyna: Administrator zablokował niepodpisane pobieranie na maszynie.

Rozwiązanie: Zainstaluj wydaną wersję lub poproś administratora o wyczyszczenie zasady. Aby uzyskać więcej informacji, zobacz Jak dotnetup weryfikuje pobieranie.

zgłaszanie problemu

Jeśli ten artykuł nie rozwiąże problemu, wyszukaj istniejące zgłoszenia dotnetup. Jeśli nie znajdziesz dopasowania, otwórz nowy problem w repozytorium dotnet/sdk za pomocą szablonu problemu dotnetup . Uwzględnij dane wyjściowe dotnetup --info oraz dane wyjściowe polecenia, które zakończyło się niepowodzeniem, za pomocą --verbosity detailed.

W przypadku pytań i sugestii użyj dyskusji dotnetup.

Informacje dodatkowe