Solución de problemas general de .NET Native
En este artículo se describe cómo solucionar posibles problemas que podría surgir al desarrollar aplicaciones con .NET Native.
Issues
Problema: la ventana de salida de compilación no está bien actualizada.
Solución: la ventana de salida de compilación no se actualiza hasta que la compilación haya finalizado. Los tiempos de compilación pueden ser de hasta varios minutos, por lo que puede sufrir un retraso al ver las actualizaciones.
Problema: el tiempo de compilación comercial de la aplicación para Arm ha aumentado.
Resolución: al implementar una aplicación en el dispositivo Arm, se invoca la infraestructura nativa de .NET. Esta compilación realiza un gran número de optimizaciones, además de garantizar que no sigan funcionando semánticas no estáticas como, por ejemplo, la reflexión. Además, la parte de .NET Framework que usa la aplicación está vinculada estáticamente para obtener un rendimiento óptimo y también debe compilarse en código nativo. Este es el motivo por el que la compilación tarda más tiempo.
Sin embargo, los tiempos de compilación siguen estando dentro un minuto de compilación estándar para la mayoría de las aplicaciones en un equipo de desarrollo estándar. Normalmente, la generación de imágenes nativas para .NET Framework en una máquina de desarrollo estándar tarda varios minutos. Incluso con todas las optimizaciones para mejorar el código generado y con la inclusión de .NET Framework, los tiempos de compilación de aplicaciones suelen ser de un minuto o dos.
Seguimos trabajando para mejorar el rendimiento de compilación investigando la compilación multiproceso y otras optimizaciones.
Problema: no sabe si la aplicación se compiló con .NET Native.
Resolución: si se invoca el compilador nativo de .NET, observará tiempos de compilación más largos y el Administrador de tareas mostrará varios procesos de componentes nativos de .NET, como ILC.exe y nutc_driver.exe.
Después de compilar correctamente el proyecto con .NET Native, encontrará la salida en obj\config\ arch\projectname.ilc\out. El contenido final del paquete nativo se puede encontrar en bin\arch\config\AppX. El contenido final del paquete nativo se encuentran en \bin\arch\config\AppX si ha implementado la aplicación.
Problema: su aplicación compilada con .NET Native produce excepciones en tiempo de ejecución (normalmente excepciones MissingMetadataException o MissingRuntimeArtifactException) que no produjo al compilarse sin .NET Native.
Solución: las excepciones se producen porque .NET Native no ha proporcionado los metadatos o el código de implementación, que en otras circunstancias están disponibles a través de reflexión (Para obtener más información, vea .NET Native and Compilation).) Para eliminar la excepción, debe agregar una entrada al archivo de directivas en tiempo de ejecución (rd.xml) para que la cadena de herramientas de .NET Native pueda hacer que los metadatos o el código de implementación estén disponibles en tiempo de ejecución. Existen dos solucionadores de problemas que generarán la entrada necesaria para agregar al archivo de directivas en tiempo de ejecución:
Solucionador de problemas de MissingMetadataException para los tipos.
Solucionador de problemas de MissingMetadataException para los métodos.
Para obtener más información, vea Reflection and .NET Native (Reflexión y .NET Native).