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.
Il modello di distribuzione dipendente dal framework è stato il modello di distribuzione più efficace sin dall'introduzione di .NET. In questo scenario, lo sviluppatore dell'applicazione aggrega solo l’applicazione e gli assembly di terze parti con l’aspettativa che il runtime e le librerie di runtime .NET saranno disponibili nel computer client. Questo modello di distribuzione continua a essere quello dominante nella versione più recente di .NET, tuttavia, esistono alcuni scenari in cui il modello dipendente dal framework non è la scelta migliore. L'alternativa consiste nel pubblicare un'applicazione autonoma, in cui il runtime e le librerie di runtime .NET vengono raggruppati insieme all'applicazione e agli assembly di terze parti.
Il modello di distribuzione riduzione-autonomo è una versione specializzata del modello di distribuzione autonomo ottimizzato per ridurre le dimensioni della distribuzione. Ridurre al minimo le dimensioni della distribuzione è un requisito fondamentale per alcuni scenari lato client, come ad esempio le applicazioni Blazor. A seconda della complessità dell'applicazione, viene fatto riferimento solo a un sottoinsieme di assembly del framework e per eseguire l'applicazione è necessario un sottoinsieme del codice all'interno di ogni assembly. Le parti inutilizzate delle librerie non sono necessarie e possono essere eliminate dall'applicazione in pacchetto.
Tuttavia, esiste un rischio che l'analisi in fase di compilazione dell'applicazione possa causare errori in fase di esecuzione, a causa della mancata possibilità di analizzare in modo affidabile vari modelli di codice problematici (in gran parte centrati sull'uso della reflection). Per attenuare questi problemi, gli avvisi vengono generati ogni volta che il trimmer non è in grado di analizzare completamente un modello di codice. Per informazioni sul significato degli avvisi di taglio e su come risolverli, vedere Correggere gli avvisi di taglio. Per comprendere il funzionamento del taglio e il motivo per cui determinati modelli causano avvisi, vedere Informazioni sull'analisi del taglio.
Nota
- La riduzione è completamente supportata in .NET 6 e versioni successive. In .NET Core 3.1 e .NET 5, la riduzione è una funzionalità sperimentale.
- La riduzione è disponibile solo per le applicazioni pubblicate in modalità autonoma.
Componenti che causano problemi di riduzione
Avviso
Non tutti i tipi di progetto possono essere ridotti. Per altre informazioni, vedere Incompatibilità di riduzione note.
Qualsiasi codice che causa problemi di analisi del tempo di compilazione non è adatto alla riduzione. Alcuni modelli di codifica comuni che sono problematici quando vengono usati da un'applicazione provengono dall'utilizzo di reflection senza vincoli e dalle dipendenze esterne che non sono visibili in fase di compilazione. Un esempio di reflection senza vincoli è un serializzatore legacy, ad esempio serializzazione XML e un esempio di dipendenze esterne invisibili è COM predefinito. Per risolvere gli avvisi di taglio nell'applicazione, vedere Correggere gli avvisi di taglio e rendere la libreria compatibile con il taglio, vedere Preparare le librerie .NET per il taglio.
Abilitare la riduzione
Aggiungere
<PublishTrimmed>true</PublishTrimmed>al file di progetto.Questa proprietà produrrà un'app ridotta nella pubblicazione autonoma. Disattiva anche le funzionalità non compatibili con la riduzione e mostra gli avvisi di compatibilità della riduzione durante la compilazione.
<PropertyGroup> <PublishTrimmed>true</PublishTrimmed> </PropertyGroup>Pubblicare quindi l'app usando il comando dotnet publish o Visual Studio.
Pubblicare con l'interfaccia della riga di comando
L'esempio seguente pubblica l'app per Windows come applicazione autonoma ridotta.
dotnet publish -r win-x64
La riduzione è supportata solo per le app autonome.
<PublishTrimmed> deve essere impostato nel file di progetto in modo che le funzionalità non compatibili con la riduzione vengano disabilitate durante dotnet build. Tuttavia, è anche possibile impostare questa opzione come argomento in dotnet publish:
dotnet publish -r win-x64 -p:PublishTrimmed=true
Per altre informazioni, vedere Panoramica della pubblicazione di applicazioni .NET.
Pubblicare con Visual Studio
In Esplora Soluzioni, fai clic con il pulsante destro del mouse sul progetto che desideri pubblicare e seleziona Proprietà.
Scegli Compila>Pubblica.
Selezionare Pubblica tagliato per pubblicare l'app tagliata.
Per altre informazioni, vedere Panoramica della pubblicazione di applicazioni .NET.
Passaggi successivi
Dopo aver abilitato il taglio, è possibile che vengano visualizzati avvisi di taglio durante la compilazione. Seguire queste guide per comprenderle e risolverle:
- Informazioni sull'analisi del taglio : informazioni sul funzionamento del trimmer e sul motivo per cui determinati modelli di codice generano avvisi. Questa guida concettuale illustra i principi fondamentali dell'analisi del taglio.
- Correzione degli avvisi di taglio : flussi di lavoro step-by-step per la risoluzione degli avvisi di taglio nel codice.
- Preparare le librerie per l'ottimizzazione: rendere le librerie compatibili con l'ottimizzazione.
- Opzioni di taglio : riferimento per le proprietà di MSBuild che controllano il comportamento di taglio.