Fehlerbehebung für dotnetup

Hinweis

dotnetup befindet sich in der öffentlichen Vorschau. Die Features und das Verhalten können sich vor der allgemeinen Verfügbarkeit ändern.

In diesem Artikel werden allgemeine dotnetup Probleme und deren Behebung beschrieben.

Sammeln von Diagnoseinformationen

Bevor Sie ein Problem beheben, sammeln Sie diese Informationen:

  • Zeigen Sie die dotnetup Version, Architektur, Laufzeit-ID und die überprüften Installationen an:

    dotnetup --info
    
  • Zeigen Sie die nachverfolgten Installationsspezifikationen und Installationen an, und überprüfen Sie die Dateien auf dem Datenträger:

    dotnetup list
    
  • Vergleichen Sie die Konfiguration der gespeicherten Umgebung mit der aktuellen Umgebung:

    dotnetup env show
    
  • Führen Sie den fehlgeschlagenen Befehl erneut mit detaillierter Ausgabe aus. Beispiele:

    dotnetup sdk install 10.0 --verbosity detailed
    

Projekte werden nach dem Setup nicht gebaut oder Apps starten nicht

Symptom: Nachdem Sie everywhere im dotnetup-Modus unter Windows eingerichtet haben, können Projekte, die zuvor erstellt werden konnten, jetzt nicht mehr erstellt werden. Oder frameworkabhängige Apps zeigen diesen Fehler an:

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

Ursache: Im everywhere Modus hat die dotnetup-verwaltete Installation Vorrang vor der computerweiten Installation in Programme. SDKs und Laufzeiten, die nur in der computerweiten Installation vorhanden sind, sind nicht verfügbar.

Lösung: Migrieren Sie die computerweiten SDKs und Laufzeiten in die von dotnetup verwaltete Installation:

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

Oder wechseln Sie in den Zugriffsmodus shell oder none. Weitere Informationen finden Sie unter Hinweise zum Everywhere-Modus.

dotnet verwendet die von dotnetup verwaltete Installation nicht.

Symptom: Der dotnet Befehl in Ihrem Terminal verwendet nicht die SDKs, die dotnetup installiert hat.

Ursache: Das Terminal war geöffnet, bevor dotnetup die Umgebung verändert hat, oder die Umgebungskonfiguration stimmt nicht mit der gespeicherten Konfiguration überein.

Solution:

  1. Öffnen Sie ein neues Terminal. Änderungen am Shellprofil oder in Windows Umgebungsvariablen wirken sich nicht auf bereits geöffnete Terminals aus.

  2. Führen Sie dotnetup env show aus. Wenn die Abweichung gemeldet wird, führen Sie dotnetup env set aus, um die gespeicherte Konfiguration erneut anzuwenden.

  3. Um nur das aktuelle Terminal zu konfigurieren, werten Sie die Ausgabe von dotnetup env script aus. Beispiel: in Bash oder zsh:

    eval "$(dotnetup env script)"
    

    In PowerShell:

    dotnetup env script --shell pwsh | Invoke-Expression
    

Weitere Informationen finden Sie unter Verwalten der dotnetup-Umgebung.

Installationspfad enthält bereits eine nicht nachverfolgte Installation.

Symptom: Ein Installationsbefehl schlägt mit diesem Fehler fehl:

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.

Ursache:dotnetup installiert keine nachverfolgten Dateien in einem Ordner, der eine .NET-Installation enthält, die von dotnetup nicht nachverfolgt wird. Diese Überprüfung verhindert, dass dotnetup ihre Dateien mit Dateien mischt, die ein anderes Tool besitzt.

Lösung: Führen Sie eine der folgenden Aktionen aus:

  • Wählen Sie einen anderen Ordner mit der --install-path Option aus.
  • Entfernen Sie die vorhandene Installation im Ordner.
  • Wenn ein anderes Tool den Ordner besitzt, verwenden Sie die --untracked Option. dotnetup listet keine nicht nachverfolgten Dateien auf, aktualisiert sie nicht und entfernt sie nicht.

Weitere Informationen finden Sie unter Verwalten benutzerdefinierter Installationsstämme.

Die dotnet-Executable wird verwendet.

Symptom: In Windows zeigt ein Installationsbefehl eine Warnung an, die dieser Meldung ähnelt:

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

Ursache: Ein ausgeführter Prozess verwendet die dotnet ausführbare Datei, sodass dotnetup sie nicht ersetzen kann. Die Installation wird mit der vorhandenen ausführbaren dotnet Datei fortgesetzt. Eine neue Laufzeit erfordert möglicherweise eine neuere ausführbare dotnet-Datei.

Lösung: Schließen Sie alle laufenden .NET-Apps, IDEs und Build-Server. Führen Sie dann den Installationsbefehl erneut aus. Um den Befehl fehlschlagen zu lassen, anstatt mit einer Warnung fortzufahren, verwenden Sie die --require-muxer-update-Option.

Ein weiterer Dotnetup-Prozess wird ausgeführt.

Symptom: Ein Befehl zeigt diese Meldung an und wartet:

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

Ursache:dotnetup Dies serialisiert Änderungen am Zustand der freigegebenen Installation. Ein anderer dotnetup Befehl ändert denselben Zustand.

Lösung: Warten Sie, bis der andere Befehl abgeschlossen ist. Wenn kein anderer dotnetup Prozess ausgeführt wird, suchen Sie dotnetup nach Prozessen, die nicht mehr reagieren, und beenden Sie sie.

Das Manifest ist beschädigt.

Symptom: Ein Befehl schlägt mit diesem Fehler fehl:

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

Die Nachricht kann auch sagen, dass die Datei außerhalb von dotnetup geändert wurde.

Ursache: Die dotnetup_manifest.json Datei ist ungültig. Ein anderer Prozess oder eine manuelle Bearbeitung hat die Datei möglicherweise geändert.

Lösung: Löschen Sie die Manifestdatei und die zugehörige .sha256 Datei aus dem Dotnetup-Datenverzeichnis. Installieren Sie dann die benötigten SDKs und Laufzeiten erneut. Da das Manifest den vorhandenen Installationsstamm nicht mehr nachverfolgt, müssen Sie diesen Ordner möglicherweise auch zuerst löschen. Informationen zum Speicherort des Datenverzeichnisses finden Sie unter dotnetup aktualisieren oder entfernen.

Hinweis

Bearbeiten Sie die Manifestdatei nicht. Verwenden Sie dotnetup Befehle, um den Nachverfolgungsstatus zu ändern.

Die Konfigurationsdatei ist beschädigt.

Symptom: Ein Befehl zeigt diese Warnung an:

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

Ursache: Die dotnetup.config.json Datei ist ungültig. dotnetup ignoriert die Datei.

Lösung: Führen Sie dotnetup env set mit dem gewünschten Zugriffsmodus aus, oder führen Sie dotnetup init erneut aus. Diese Befehle erstellen eine neue Konfiguration.

Ein Shellprofil enthält einen falsch formatierten Dotnetup-Block

Symptom: Ein env Befehl schlägt mit einem Fehler wie dieser Meldung fehl:

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.

Ursache:dotnetup kennzeichnet die Zeilen, die es einem Shell-Profil hinzufügt, mit Anfangs- und Endkommentaren. Einer dieser Kommentare fehlt.

Lösung: Öffnen Sie das Shellprofil in einem Text-Editor. Entfernen Sie den unvollständigen Dotnetup-Block, oder fügen Sie die fehlende Markierung hinzu. Führen Sie anschließend den Befehl erneut aus.

Die Erhöhung der Berechtigung wurde abgebrochen.

Symptom: Unter Windows zeigt ein Befehl, der den everywhereModus ein- oder ausschaltet, diese Meldung an:

Elevation was cancelled. The system PATH was not modified.

Ursache: Änderungen am System PATH erfordern Administratorrechte. Die Aufforderung für die Benutzerkontensteuerung (User Account Control, UAC) wurde abgebrochen.

Lösung: Führen Sie den Befehl erneut aus, und genehmigen Sie die UAC-Aufforderung. Oder wählen Sie den shell- oder none-Zugriffsmodus aus, der keine erhöhten Rechte erfordert.

Ein Releasemanifest ist abgelaufen.

Symptom: Eine Installation oder ein Update schlägt bei der Überprüfung des Releasemanifests mit dem ExpiredNow Fehlercode fehl.

Ursache: Die aktuelle Systemzeit liegt zum oder nach dem Ablaufzeitpunkt des Manifests. Das Manifest ist möglicherweise abgelaufen, oder die Systemuhr ist falsch. Eine gültige Signatur macht kein abgelaufenes Manifest akzeptabel.

Solution:

  1. Überprüfen Sie das Datum und die Uhrzeit Ihres Systems. Korrigieren Sie bei Bedarf die Uhr.
  2. Wiederholen Sie den Befehl. Wenn ein Proxy zwischengespeicherte Releasemetadaten liefert, bitten Sie Ihren Administrator, zu überprüfen, ob er ein abgelaufenes Manifest ausliefert.
  3. Wenn die Uhr korrekt ist und der Fehler weiterhin besteht, melden Sie das Problem mit der detaillierten Ausgabe des Befehls.

Bearbeiten Sie weder das Manifest noch ändern Sie die Uhr, um Ablaufprüfungen zu umgehen. Weitere Informationen finden Sie unter Ablauf des Manifests.

Eine Installation wird durch eine IT-Richtlinie blockiert.

Symptom: Eine Installation eines täglichen Oder Vorabversionsbuilds schlägt mit einer Meldung fehl, dass eine IT-Richtlinie codesignierte Downloads erfordert.

Ursache: Ein Administrator hat nicht signierte Downloads auf dem Computer blockiert.

Lösung: Installieren Sie eine veröffentlichte Version, oder bitten Sie Ihren Administrator, die Richtlinie zu löschen. Weitere Informationen finden Sie unter Wie dotnetup Downloads überprüft.

Problem melden

Wenn Ihr Problem in diesem Artikel nicht behoben wird, durchsuchen Sie die vorhandenen dotnetup Issues. Wenn Sie keine Übereinstimmung finden, öffnen Sie ein neues Problem im dotnet/sdk-Repository mit der Dotnetup-Problemvorlage . Fügen Sie die Ausgabe von dotnetup --info und die Ausgabe des fehlgeschlagenen Befehls mit --verbosity detailed ein.

Verwenden Sie für Fragen und Vorschläge dotnetup-Diskussionen.

Siehe auch