Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se si pubblica un progetto con -p:PublishReadyToRun=true
oltre a --no-restore
, il progetto verrà compilato solo con i pacchetti ripristinati in un'operazione precedente dotnet restore
. In .NET 5 questo processo ha funzionato e ha generato un file binario incrociato. In .NET 6 lo stesso processo avrà esito negativo con l'errore NETSDK1094.
Versione introdotta
.NET 6
Comportamento precedente
Nelle versioni precedenti, l'applicazione crossgen è stata inserita in un pacchetto con il runtime. Di conseguenza, il processo crossgen è stato in grado di essere eseguito nell'applicazione indipendentemente dal fatto che il progetto sia stato ripristinato o meno. È stata pratica comune separare dotnet restore
da dotnet publish
, aggiungendo --no-restore
al comando di pubblicazione per assicurarsi che non si siano verificati accessi di rete aggiuntivi.
Nuovo comportamento
In .NET 6, dotnet restore
seguito da dotnet publish -p:PublishReadyToRun=true --no-restore
restituirà l'errore NETSDK1094. Ciò è dovuto al fatto che il file binario crossgen viene ora fornito come pacchetto NuGet separato e quindi deve far parte dell'operazione di ripristino per la pubblicazione.
Motivo della modifica
Il file binario crossgen non è necessario per molti carichi di lavoro, quindi è stato suddiviso dall'SDK principale. Viene in genere acquisito su richiesta e gli obiettivi di pubblicazione MSBuild ora si occupano di gestire questa acquisizione aggiungendo il pacchetto all'elenco dei pacchetti da ripristinare.
Azione consigliata
- Se vuoi mantenere un'esperienza di pubblicazione isolata, informa al passaggio di ripristino che pubblicherai ReadyToRun. Aggiungere
-p:PublishReadyToRun=true
anche alla riga di comando di ripristino. - In alternativa, rimuovere
--no-restore
dalla riga di comando di pubblicazione per consentire al comando publish di ripristinare anche crossgen.