Ottimizzare le app desktop .NET con immagini native

È possibile migliorare il tempo di avvio dell'applicazione .NET Framework precompilando i file binari. È possibile usare questa tecnologia in applicazioni di grandi dimensioni che vengono pacchetti e distribuite tramite il Microsoft Store. In alcuni casi, è stato osservato un miglioramento delle prestazioni del 20%. Per altre informazioni su questa tecnologia, vedere la panoramica tecnica.

È stato rilasciato il compilatore di immagini native come NuGet pacchetto. È possibile applicare questo pacchetto a qualsiasi .NET Framework che ha come destinazione .NET Framework versione 4.6.2 o successiva. Questo pacchetto aggiunge un'istruzione post-compilazione che include un payload nativo a tutti i file binari usati dall'applicazione. Questo payload ottimizzato verrà caricato quando l'applicazione viene eseguita in .NET 4.7.2 e versioni successive, mentre le versioni precedenti caricheranno comunque il codice MSIL.

.NET Framework 4.7.2 è incluso nell'aggiornamento Windows 10 aprile 2018. È anche possibile installare questa versione del .NET Framework nei PC che eseguono Windows 7+ e Windows Server 2008 R2+.

Importante

Se si desidera produrre immagini native per l'applicazione in pacchetto dal progetto di creazione pacchetti dell'applicazione Windows, assicurarsi di impostare la versione minima della piattaforma di destinazione del progetto sull'aggiornamento dell'anniversario Windows.

Come produrre immagini native

Seguire queste istruzioni per configurare i progetti.

  1. Configurare il framework di destinazione come 4.6.2 o versione precedente

  2. Configurare la piattaforma di destinazione come x86 o x64

  3. Aggiungere i NuGet seguenti.

  4. Creare una build di versione.

Configurare il framework di destinazione come 4.6.2 o versione precedente

Per configurare il progetto come destinazione .NET Framework 4.6.2, sono necessari gli strumenti di sviluppo .NET Framework 4.6.2 o versione più recente. Questi strumenti sono disponibili tramite il programma di installazione Visual Studio come componenti facoltativi nel carico di lavoro sviluppo desktop .NET:

Installare gli strumenti di sviluppo .NET 4.6.2

In alternativa, è possibile ottenere i Developer Pack .NET da: https://www.microsoft.com/net/download/visual-studio-sdks

Configurare la piattaforma di destinazione come x86 o x64

Il compilatore di immagini native ottimizza il codice per una determinata piattaforma. Per usarlo, è necessario configurare l'applicazione per una piattaforma specifica, ad esempio x86 o x64.

Se nella soluzione sono presenti più progetti, solo il progetto del punto di ingresso (molto probabilmente il progetto che produce un file eseguibile) deve essere compilato come x86 o x64. I file binari aggiuntivi a cui viene fatto riferimento dal progetto principale verranno elaborati con l'architettura specificata nel progetto principale, anche se vengono compilati come AnyCPU.

Per configurare il progetto:

  1. Fare clic con il pulsante destro del mouse sulla soluzione e quindi scegliere Gestione configurazione.

  2. Selezionare <Nuovo . > nel menu a discesa Piattaforma accanto al nome del progetto che produce il file eseguibile.

  3. Nella finestra di dialogo Nuova Project piattaforma assicurarsi che l'elenco a discesa Copia Impostazioni da sia impostato su Qualsiasi CPU.

Configurare x86

Ripetere questo passaggio per Release/x64 se si vogliono produrre file binari x64.

Importante

La configurazione AnyCPU non è supportata dal compilatore di immagini native.

Aggiungere i NuGet seguenti

Il compilatore di immagini native viene fornito come NuGet pacchetto che è necessario aggiungere al progetto Visual Studio che produce il file eseguibile. Si tratta in genere del progetto Windows Form o WPF. A tale scopo, usare questo comando di PowerShell.

PM> Install-Package Microsoft.DotNet.Framework.NativeImageCompiler -Version 1.0.0

Creare una build di versione

Il NuGet pacchetto configura il progetto per eseguire uno strumento aggiuntivo per le build di versione. Questo strumento aggiunge il codice nativo agli stessi file binari. Per verificare che lo strumento abbia elaborato i file binari, è possibile esaminare l'output di compilazione per assicurarsi che includa un messaggio simile al seguente:

Native image obj\x86\Release\\R2R\DesktopApp1.exe generated successfully.

La compilazione di immagini native può essere attivata nelle build non di rilascio impostando la proprietà NgenR2R su nel file di true progetto.

Domande frequenti

D. I nuovi file binari funzionano nei computer senza .NET Framework 4.7.2?

A. I file binari ottimizzati trarranno vantaggio dai miglioramenti quando vengono eseguiti con .NET Framework 4.7.2. I client che eseguono versioni precedenti di .NET Framework caricano il codice MSIL non ottimizzato dal file binario.

D. Come è possibile inviare commenti e suggerimenti o segnalare problemi?

A. Segnalare un problema usando lo strumento Feedback in Visual Studio 2017. Per altre informazioni, vedere.

D. Qual è l'impatto dell'aggiunta dell'immagine nativa ai file binari esistenti?

A. I file binari ottimizzati contengono il codice gestito e nativo, rendendo più grandi i file finali.

D. È possibile rilasciare file binari usando questa tecnologia?

A. Questa versione include una licenza Go Live che è possibile usare attualmente.