Dotnetup hibaelhárítása

Note

dotnetup nyilvános előzetes verzióban érhető el. Funkciói és viselkedése az általános elérhetőség előtt változhat.

Ez a cikk a gyakori dotnetup problémákat és azok megoldását ismerteti.

Diagnosztikai adatok gyűjtése

A probléma elhárítása előtt gyűjtse össze ezeket az információkat:

  • A dotnetup verzió, az architektúra, a futtatókörnyezet azonosítója és az ellenőrzött telepítések megjelenítése:

    dotnetup --info
    
  • A nyomon követett telepítési specifikációk és telepítések megjelenítése, valamint a lemezen lévő fájlok ellenőrzése:

    dotnetup list
    
  • Hasonlítsa össze a tárolt környezet konfigurációját az aktuális környezettel:

    dotnetup env show
    
  • Futtassa újra a sikertelen parancsot részletes kimenettel. Példa:

    dotnetup sdk install 10.0 --verbosity detailed
    

A projektek nem fordulnak le, vagy az alkalmazások nem indulnak el a telepítés után

Tünet: Miután beállította a(z) dotnetup elemet Windows rendszeren everywhere módban, a korábban sikeresen buildelő projektek most nem fordulnak le. Vagy a keretrendszerfüggő alkalmazások a következő hibát mutatják:

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

Oka: A everywhere módban a dotnetup által felügyelt telepítés elsőbbséget élvez a Program Files mappában lévő gépszintű telepítéssel szemben. Az olyan SDK-k és futtatókörnyezetek, amelyek csak a gépszintű telepítésben léteznek, nem érhetők el.

Megoldás: A gépszintű SDK-k és futtatókörnyezetek áttelepítése a dotnetup által felügyelt telepítésbe:

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

Vagy váltson a none vagy shell hozzáférési módra. További információkért lásd a Everywhere mode considerations.

a dotnet nem használja a dotnetup által felügyelt telepítést

Tünet: A terminálban lévő dotnet parancs nem használja a dotnetup által telepített SDK-kat.

Ok: A terminál nyitva volt, mielőtt a dotnetup módosította a környezetet, vagy a környezeti konfiguráció nem felel meg a tárolt konfigurációnak.

Solution:

  1. Nyisson meg egy új terminált. A shellprofil vagy a Windows környezeti változók módosításai nem érintik a már megnyitott terminálokat.

  2. Futtassa dotnetup env show. Ha eltérést jelez, futtassa a(z) dotnetup env set parancsot a tárolt konfiguráció ismételt alkalmazásához.

  3. Ha csak az aktuális terminált szeretné konfigurálni, futtassa a(z) dotnetup env script kimenetét. Például Bash vagy zsh esetén:

    eval "$(dotnetup env script)"
    

    A PowerShellben:

    dotnetup env script --shell pwsh | Invoke-Expression
    

További információ: Dotnetup-környezet kezelése.

A telepítési útvonal már tartalmaz egy nem nyomon követett telepítést

Tünet: A telepítési parancs a következő hibával meghiúsul:

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.

Ok:dotnetup nem telepít nyomon követett fájlokat olyan mappába, amely olyan .NET telepítést tartalmaz, amelyet nem követ nyomon. Ez az ellenőrzés megakadályozzadotnetup, hogy a saját fájljait egy másik eszköz tulajdonában lévő fájlokkal keverje

Megoldás: Tegye az alábbiak egyikét:

  • Válasszon egy másik mappát a --install-path lehetőséggel.
  • Távolítsa el a mappában lévő meglévő telepítést.
  • Ha egy másik eszköz birtokolja a mappát, használja a --untracked lehetőséget. dotnetup nem sorolja fel, nem frissíti és nem távolítja el a nem követett fájlokat.

További információ: Egyéni telepítési gyökerek kezelése.

A végrehajtható dotnet használatban van

Tünet: Windows rendszeren egy telepítési parancs az alábbi üzenethez hasonló figyelmeztetést jelenít meg:

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

Ok: Egy futó folyamat a dotnet végrehajtható fájlt használja, ezért dotnetup nem tudja lecserélni. A telepítés a meglévő dotnet végrehajthatóval folytatódik. Előfordulhat, hogy egy új futtatókörnyezethez újabb dotnet végrehajtható fájlra van szükség.

Megoldás: Zárja be az összes futó .NET alkalmazást, IDE-ket és buildkiszolgálót. Ezután futtassa újra a telepítési parancsot. Ha azt szeretné, hogy a parancs hibával leálljon ahelyett, hogy figyelmeztetéssel folytatódna, használja a --require-muxer-update lehetőséget.

Egy másik dotnetup folyamat fut

Tünet: Egy parancs megjeleníti ezt az üzenetet, és várakozik:

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

Ok:dotnetup A(z) megosztott telepítési állapot módosításait szerializálja. Egy másik dotnetup parancs ugyanazt az állapotot módosítja.

Megoldás: Várja meg, amíg a másik parancs befejeződik. Ha más folyamat nem dotnetup fut, keresse meg dotnetup azokat a folyamatokat, amelyek nem válaszoltak, és fejezze be őket.

Az önfrissítés nem helyettesíti a végrehajtható fájlt

Tünet:dotnetup self update arról számol be, hogy nem történt frissítés.

Oka: A kijelölt csatorna ugyanazt a verziót vagy egy régebbi verziót tartalmazza. A hivatalos napi buildek preview címkét is kapnak, és alapértelmezetten az előnézeti csatornát használják.

Megoldás: A napi buildek megtartásához futtassa a dotnetup self update --channel daily. A legújabb előzetes verzió szándékos újratelepítéséhez vagy visszalépéséhez futtassa a következőt dotnetup self update --channel preview --force: .

Az önfrissítés sikertelen

Tünet:dotnetup self update meghiúsul a futtatható fájl helye, az engedélyek, az ellenőrzés vagy egy másik aktív parancs miatt.

Solution:

  • Futtassa az önálló végrehajtható fájlt a tényleges telepítési címtárából, nem a dotnet hoston keresztül vagy egy végrehajtható szimbolikus hivatkozáson keresztül.
  • Ellenőrizze, hogy rendelkezik-e írási hozzáféréssel a telepítési könyvtárhoz.
  • Ha egy másik parancs zárolást tart fenn, hagyja befejezni, és próbálkozzon újra.
  • Ha a hitelesítés sikertelen, ne kerülje meg az ellenőrzőösszeg- vagy az aláírás-ellenőrzést. Jelentse a meghibásodást.
  • Ha a futtatható fájl már nem indul el, telepítse újra a letöltési szkriptekkel.

Az olyan régebbi buildek esetében, amelyek nem ismerik fel a parancsot, a letöltési szkriptekkel telepítse az aktuális előzetes verziót. Az ellenőrzéssel és az aláíratlan letöltési szabályzattal kapcsolatos részletekért tekintse meg A dotnetup futtatható fájl.

A manifesztum hibás

Tünet: Egy parancs a következő hibával meghiúsul:

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

Az üzenet azt is elmondhatja, hogy a fájlt a dotnetup alkalmazáson kívül módosították.

Ok: A dotnetup_manifest.json fájl érvénytelen. Előfordulhat, hogy egy másik folyamat vagy manuális szerkesztés módosította a fájlt.

Megoldás: Törölje a manifestfájlt és a .sha256 fájlt a dotnetup adatkönyvtárból. Ezután telepítse újra a szükséges SDK-kat és futtatókörnyezeteket. Mivel a manifeszt már nem követi nyomon a meglévő telepítési gyökérkönyvtárat, előfordulhat, hogy először törölnie kell a mappát. Az adatkönyvtár helyéről a dotnetup frissítése vagy eltávolítása című témakörben olvashat.

Note

Ne szerkessze a manifestfájlt. A nyomon követett állapot módosításához használja a dotnetup parancsokat.

A konfigurációs fájl sérült

Tünet: Egy parancs a következő figyelmeztetést jeleníti meg:

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

Ok: A dotnetup.config.json fájl érvénytelen. dotnetup figyelmen kívül hagyja a fájlt.

Megoldás: Futtassa a(z) dotnetup env set elemet a kívánt hozzáférési módban, vagy futtassa újra a(z) dotnetup init elemet. Ezek a parancsok új konfigurációt hoznak létre.

A rendszerhéjprofil hibásan formázott dotnetup blokkot tartalmaz

Tünet: A env parancs az üzenethez hasonló hibával meghiúsul:

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.

Ok:dotnetup Kezdő és záró megjegyzésekkel jelöli meg azokat a sorokat, amelyeket hozzáad egy rendszerhéjprofilhoz. Az egyik megjegyzés hiányzik.

Megoldás: Nyissa meg a rendszerhéjprofilt egy szövegszerkesztőben. Távolítsa el a hiányos dotnetup blokkot, vagy adja hozzá a hiányzó jelölőt. Ezután futtassa újra a parancsot.

A jogosultságszint-emelést megszakították

Tünet: Windows rendszeren a everywhere mód be- vagy kikapcsolására szolgáló parancs a következő üzenetet jeleníti meg:

Elevation was cancelled. The system PATH was not modified.

Ok: A rendszer PATH módosítása rendszergazdai jogosultságot igényel. A Felhasználói fiókok felügyelete (UAC) figyelmeztetést megszakították.

Megoldás: Futtassa újra a parancsot, és hagyja jóvá a UAC-kérést. Vagy válassza ki a shell vagy none hozzáférési módot, amely nem igényel jogosultságszint-emelést.

A kiadási jegyzék lejárt

Tünet: A telepítés vagy frissítés sikertelen a release-manifestum ellenőrzése során a ExpiredNow hibakóddal.

Oka: Az aktuális rendszeridő a jegyzék lejárati idején vagy azt követően van. Lehet, hogy a manifesztum lejárt, vagy a rendszeróra helytelen lehet. Az érvényes aláírás nem teszi elfogadhatóvá a lejárt manifesztfájlt.

Solution:

  1. Ellenőrizze a rendszer dátumát és idejét. Szükség esetén javítsa ki az időt.
  2. Próbálkozzon újra a paranccsal. Ha egy proxy gyorsítótárazott kiadási metaadatokat szolgál ki, kérje meg a rendszergazdát, hogy ellenőrizze, hogy az egy lejárt manifesztumot szolgál-e ki.
  3. Ha az óra helyes, és a hiba továbbra is fennáll, jelentse a problémát a parancs részletes kimenetével együtt.

Ne szerkessze a manifestfájlt, és ne módosítsa az órát a lejárati ellenőrzések megkerüléséhez. További információ: Manifesztum lejárata.

A telepítést egy informatikai szabályzat blokkolja

Tünet: Egy napi vagy előzetes build telepítése meghiúsul egy üzenettel, amely azt jelzi, hogy egy informatikai szabályzat digitálisan aláírt letöltéseket igényel.

Ok: A rendszergazda letiltotta az aláíratlan letöltéseket a gépen.

Megoldás: Telepítsen egy kiadott verziót, vagy kérje meg a rendszergazdát, hogy törölje a házirendet. További információ: Hogyan ellenőrzi a dotnetup a letöltéseket.

Probléma bejelentése

Ha ez a cikk nem oldja meg a problémát, keressen rá a meglévő dotnetup-hibajegyekre. Ha nem talál egyezést, nyisson meg egy új problémát a dotnet/sdk repositoryban a dotnetup problémasablonnal. Adja meg a dotnetup --info kimenetét és a sikertelen parancs kimenetét a(z) --verbosity detailed használatával.

Kérdések és javaslatok esetén használja a dotnetup vitafórumokat.

Lásd még