Risoluzione dei problemi di dotnetup

Note

dotnetup è disponibile in anteprima pubblica. Le funzionalità e il comportamento potrebbero cambiare prima della disponibilità generale.

Questo articolo descrive i problemi comuni dotnetup e come risolverli.

Raccogliere informazioni di diagnostica

Prima di risolvere un problema, raccogliere queste informazioni:

  • Visualizzare la dotnetup versione, l'architettura, l'identificatore di runtime e le installazioni verificate:

    dotnetup --info
    
  • Visualizzare le specifiche e le installazioni di installazione tracciate e verificare i file su disco:

    dotnetup list
    
  • Confrontare la configurazione dell'ambiente archiviato con l'ambiente corrente:

    dotnetup env show
    
  • Eseguire di nuovo il comando non riuscito con output dettagliato. Ad esempio:

    dotnetup sdk install 10.0 --verbosity detailed
    

I progetti non compilano o le app non vengono avviate dopo la configurazione

Sintomo: Dopo aver configurato dotnetup in modalità everywhere su Windows, i progetti compilati in precedenza ora non vengono più compilati. In alternativa, le app dipendenti dal framework mostrano questo errore:

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

Causa: In everywhere modalità l'installazione gestita da dotnetup ha la precedenza sull'installazione a livello di computer in Program Files. Gli SDK e i runtime esistenti solo nell'installazione a livello di computer non sono disponibili.

Soluzione: Eseguire la migrazione degli SDK e dei runtime a livello di computer nell'installazione gestita da dotnetup:

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

In alternativa, passare alla modalità di accesso shell o none. Per altre informazioni, vedere Considerazioni sulla modalità Ovunque.

dotnet non usa l'installazione gestita da dotnetup

Sintomo: Il comando dotnet nel terminale non usa gli SDK che dotnetup ha installato.

Causa: Il terminale è stato aperto prima dotnetup della modifica dell'ambiente o la configurazione dell'ambiente non corrisponde alla configurazione archiviata.

Soluzione:

  1. Aprire un nuovo terminale. Le modifiche apportate al profilo della shell o alle variabili di ambiente di Windows non influiscono sui terminali già aperti.

  2. Esegui dotnetup env show. Se segnala un drift di configurazione, eseguire dotnetup env set per applicare nuovamente la configurazione archiviata.

  3. Per configurare solo il terminale corrente, valutare l'output di dotnetup env script. Ad esempio, in Bash o zsh:

    eval "$(dotnetup env script)"
    

    In PowerShell:

    dotnetup env script --shell pwsh | Invoke-Expression
    

Per altre informazioni, vedere Gestire l'ambiente dotnetup.

Il percorso di installazione contiene già un'installazione non tracciata

Sintomo: Un comando di installazione non riesce con questo errore:

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.

Causa:dotnetup non installa i file tracciati in una cartella che contiene un'installazione .NET di cui non tiene traccia. Questo controllo impedisce dotnetup di combinare i file con i file di proprietà di un altro strumento.

Soluzione: Eseguire una delle operazioni seguenti:

  • Selezionare una cartella diversa con l'opzione --install-path .
  • Rimuovere l'installazione esistente dalla cartella .
  • Se un altro strumento è proprietario della cartella, usare l'opzione --untracked . dotnetup non elenca, aggiorna o rimuove file non tracciati.

Per altre informazioni, vedere Gestire le radici di installazione personalizzate.

L'eseguibile dotnet è in uso

Sintomo: In Windows, un comando di installazione visualizza un avviso simile al seguente:

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

Causa: Un processo in esecuzione usa l'eseguibile dotnet , quindi dotnetup non può sostituirlo. L'installazione continua con l'eseguibile esistente dotnet . Un nuovo runtime potrebbe richiedere un file eseguibile più recente dotnet .

Soluzione: Chiudere tutte le app .NET, gli IDE e i server di compilazione in esecuzione. Eseguire quindi di nuovo il comando di installazione. Per fare in modo che il comando non riesca anziché continuare con un avviso, usare l'opzione --require-muxer-update.

È in esecuzione un altro processo dotnetup

Sintomo: Un comando mostra questo messaggio e attende:

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

Causa:dotnetup serializza le modifiche apportate allo stato di installazione condivisa. Un altro dotnetup comando sta modificando lo stesso stato.

Soluzione: Attendere il completamento dell'altro comando. Se non viene eseguito alcun altro dotnetup processo, cercare dotnetup i processi che hanno smesso di rispondere e terminarli.

Il manifest è danneggiato

Sintomo: Un comando non viene eseguito e restituisce questo errore:

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

Il messaggio può anche indicare che il file è stato modificato all'esterno di dotnetup.

Causa: Il dotnetup_manifest.json file non è valido. Un altro processo o una modifica manuale potrebbe aver modificato il file.

Soluzione: Eliminare il file manifest e il relativo .sha256 file dalla directory dei dati di dotnetup. Reinstallare quindi gli SDK e i runtime necessari. Poiché il manifest non tiene più traccia della radice di installazione esistente, potrebbe anche essere necessario eliminare prima tale cartella. Per la posizione della directory dei dati, vedere Aggiornare o rimuovere dotnetup.

Note

Non modificare il file manifest. Usare i comandi dotnetup per modificare lo stato tracciato.

Il file di configurazione è danneggiato

Sintomo: Un comando mostra questo avviso:

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

Causa: Il dotnetup.config.json file non è valido. dotnetup ignora il file.

Soluzione: Eseguire dotnetup env set con la modalità di accesso desiderata o eseguire di nuovo dotnetup init. Questi comandi scrivono una nuova configurazione.

Un profilo della shell contiene un blocco dotnetup in formato non valido

Sintomo: Un env comando non riesce con un errore simile al seguente:

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.

Causa:dotnetup contrassegna le righe aggiunte a un profilo della shell con commenti di inizio e fine. Uno di questi commenti è mancante.

Soluzione: Aprire il profilo della shell in un editor di testo. Rimuovere il blocco dotnetup incompleto o aggiungere il marcatore mancante. Eseguire quindi di nuovo il comando.

L'elevazione dei privilegi è stata annullata

Sintomo: In Windows, un comando che attiva o disattiva la modalità everywhere visualizza questo messaggio:

Elevation was cancelled. The system PATH was not modified.

Causa: Le modifiche apportate al sistema PATH richiedono l'elevazione dei privilegi. La richiesta di Controllo dell'account utente (UAC) è stata annullata.

Soluzione: Eseguire di nuovo il comando e approvare il prompt di Controllo dell'account utente. In alternativa, selezionare la modalità di accesso shell o none, che non richiede l'elevazione dei privilegi.

Il manifest del rilascio è scaduto

Sintomo: Un'installazione o un aggiornamento non riesce durante la verifica del manifesto della versione con il ExpiredNow codice di fallimento.

Causa: L'ora di sistema corrente coincide con o è successiva all'ora di scadenza del manifest. Il manifest potrebbe essere scaduto o l'orologio di sistema potrebbe non essere corretto. Una firma valida non rende accettabile un manifest scaduto.

Soluzione:

  1. Controllare la data e l'ora del sistema. Correggere l'orologio, se necessario.
  2. Ripeti il comando. Se un proxy serve metadati di versione memorizzati nella cache, chiedere all'amministratore di verificare se serve un manifest scaduto.
  3. Se l'orologio è corretto e l'errore persiste, segnalare il problema con l'output dettagliato del comando.

Non modificare il manifest o non modificare l'orologio per ignorare i controlli di scadenza. Per altre informazioni, vedere Scadenza del manifest.

Un'installazione è bloccata da un criterio IT

Sintomo: Un'installazione di una compilazione giornaliera o non definitiva ha esito negativo e viene visualizzato un messaggio che indica che un criterio IT richiede download con firma del codice.

Causa: Un amministratore ha bloccato i download non firmati nel computer.

Soluzione: Installare una versione rilasciata o chiedere all'amministratore di cancellare il criterio. Per altre informazioni, vedere Come dotnetup verifica i download.

Segnalazione di un problema

Se questo articolo non risolve il problema, cerca i issue esistenti di dotnetup. Se non viene trovata una corrispondenza, aprire un nuovo problema nel repository dotnet/sdk con il modello di problema dotnetup . Includi l'output di dotnetup --info e l'output del comando non riuscito con --verbosity detailed.

Per domande e suggerimenti, usare le discussioni dotnetup.

Vedere anche