Risoluzione dei problemi generale per .NET Native

In questo articolo viene descritto come risolvere i problemi che potrebbero verificarsi durante lo sviluppo di app con .NET Native.

Problemi

  • Problema: la finestra di output di compilazione non viene aggiornata correttamente.

    Risoluzione: la finestra di output di compilazione non viene aggiornata correttamente finché non viene completata la compilazione. La compilazione può richiedere qualche minuto, quindi è possibile che si verifichi un ritardo nella visualizzazione degli aggiornamenti.

  • Problema: il tempo di compilazione per la versione finale dell'app per Arm è aumentato.

    Resolution: Risoluzione: quando si distribuisce un'app nel dispositivo Arm, viene richiamata l'infrastruttura .NET Native. Questa compilazione esegue diverse ottimizzazioni, assicurando al tempo stesso il corretto funzionamento della semantica non statica, ad esempio la reflection. Inoltre, la parte di .NET Framework usata dall'app è collegata staticamente per assicurare prestazioni ottimizzate e deve essere anch'essa compilata in codice nativo. Ecco perché la compilazione richiede più tempo.

    Tuttavia, i tempi di compilazione sono ancora compresi nell'intervallo di un minuto rispetto alla compilazione standard della maggior parte delle app in un computer di sviluppo standard. In genere, la semplice generazione di immagini native per .NET Framework in un computer di sviluppo standard richiede alcuni minuti. Anche considerando tutte le ottimizzazioni per il miglioramento del codice generato e includendo .NET Framework, i tempi di compilazione dell'app corrispondono solitamente a un minuto o due.

    Il processo di miglioramento delle prestazioni di compilazione è costante e viene eseguito analizzando la compilazione multithread e altre ottimizzazioni.

  • Issue: Problema: non si sa se l'app è stata compilata usando .NET Native.

    Risoluzione: se viene richiamato il compilatore .NET Native, i tempi di compilazione saranno più lunghi e Gestione attività visualizzerà diversi processi dei componenti , ad esempio ILC.exe e nutc_driver.exe.

    Dopo aver compilato correttamente il progetto con .NET Native, l'output sarà disponibile in obj\config\ arch\projectname.ilc\out. Il contenuto finale del pacchetto nativo è disponibile in bin\arch\config\AppX. I contenuti del pacchetto nativo finale sono disponibili in \bin\arch\config\AppX se l'app è stata distribuita.

  • Problema: l'app compilata in .NET Native sta generando eccezioni di runtime (in genere eccezioni MissingMetadataException o MissingRuntimeArtifactException ) che non sono state generate al momento della compilazione senza .NET Native.

    Risoluzione: le eccezioni vengono generate perché .NET Native non ha fornito metadati o il codice di implementazione altrimenti disponibile attraverso la reflection. (Per altre informazioni, vedere Compilazione e .NET Native.) Per eliminare l'eccezione, si deve aggiungere una voce al proprio file di direttive di runtime (rd.xml) in modo che la catena di strumenti di .NET Native possa rendere i metadati o il codice di implementazione disponibile in fase di esecuzione. Sono disponibili due strumenti di risoluzione dei problemi che genereranno la voce necessaria per l'aggiunta del file di direttive di runtime:

    Per altre informazioni, vedere Reflection e .NET Native.

Vedi anche