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.
Le distribuzioni di applicazioni autonome di .NET Core includono sia le librerie .NET Core che il runtime di .NET Core. A partire da .NET Core 2.1 SDK (versione 2.1.300), una distribuzione di applicazioni autonome pubblica il runtime di patch più elevato nel computer. Per impostazione predefinita, dotnet publish per una distribuzione autonoma seleziona la versione più recente installata come parte dell'SDK nel computer di pubblicazione. In questo modo l'applicazione distribuita può essere eseguita con correzioni di sicurezza (e altre correzioni) disponibili durante publish. L'applicazione deve essere ripubblicata per ottenere una nuova patch. Le applicazioni autonome vengono create specificando -r <RID> nel dotnet publish comando o specificando l'identificatore di runtime (RID) nel file di progetto (csproj/vbproj) o nella riga di comando.
Panoramica dell'avanzamento della versione patch
restoree buildpublish sono dotnet comandi che possono essere eseguiti separatamente. La scelta del runtime fa parte dell'operazione restore , non publish o build. Se si chiama publish, verrà scelta la versione più recente della patch. Se chiami publish con l'argomento --no-restore, è possibile che non venga ottenuta la versione della patch desiderata perché un'esecuzione precedente di restore potrebbe non essere avvenuta secondo il nuovo criterio di pubblicazione dell'applicazione autonoma. In questo caso, viene generato un errore di compilazione con testo simile al seguente:
"Il progetto è stato ripristinato usando Microsoft.NETCore.App versione 2.0.0, ma con le impostazioni correnti, la versione 2.0.6 verrebbe usata. Per risolvere questo problema, assicurarsi che vengano usate le stesse impostazioni per il ripristino e per le operazioni successive, ad esempio la compilazione o la pubblicazione. In genere questo problema può verificarsi se la proprietà RuntimeIdentifier viene impostata durante la compilazione o la pubblicazione, ma non durante il ripristino".
Annotazioni
restore e build possono essere eseguiti in modo implicito come parte di un altro comando, ad esempio publish. Quando vengono eseguiti in modo implicito come parte di un altro comando, vengono forniti con contesto aggiuntivo in modo che vengano prodotti gli artefatti corretti. Quando si publish usa un runtime ( ad esempio , dotnet publish -r linux-x64), i pacchetti impliciti restore vengono ripristinati per il runtime linux-x64. Se si chiama restore in modo esplicito, non ripristina i pacchetti di runtime per impostazione predefinita, perché non ha tale contesto.
Come evitare il ripristino durante la pubblicazione
L'esecuzione restore come parte dell'operazione publish può essere indesiderata per lo scenario in uso. Per evitare restore durante la creazione di publish di applicazioni indipendenti, effettuare le seguenti operazioni:
- Impostare la
RuntimeIdentifiersproprietà su un elenco delimitato da punto e virgola di tutti i RID da pubblicare. - Impostare la proprietà
TargetLatestRuntimePatchsutrue.
Argomento no-restore con opzioni di pubblicazione dotnet
Se si desidera creare applicazioni autonome e applicazioni dipendenti dal framework con lo stesso file di progetto e si vuole usare l'argomento --no-restore con dotnet publish, scegliere una delle opzioni seguenti:
Preferisce il comportamento dipendente dal framework. Se l'applicazione dipende dal framework, si tratta del comportamento predefinito. Se l'applicazione è autonoma e può usare un runtime locale non patchato 2.1.0, impostare
TargetLatestRuntimePatchsufalsenel file di progetto.Preferisce il comportamento autonomo. Se l'applicazione è autonoma, si tratta del comportamento predefinito. Se l'applicazione è dipendente dal framework e richiede l'installazione della patch più recente, impostare
TargetLatestRuntimePatchsutruenel file di progetto.Assumere il controllo esplicito della versione del framework di runtime impostando
RuntimeFrameworkVersionla versione della patch specifica nel file di progetto.