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
restore
e build
publish
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
RuntimeIdentifiers
proprietà su un elenco delimitato da punto e virgola di tutti i RID da pubblicare. - Impostare la proprietà
TargetLatestRuntimePatch
sutrue
.
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
TargetLatestRuntimePatch
sufalse
nel 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
TargetLatestRuntimePatch
sutrue
nel file di progetto.Assumere il controllo esplicito della versione del framework di runtime impostando
RuntimeFrameworkVersion
la versione della patch specifica nel file di progetto.