Share via


.NET Native solución de problemas generales

En este artículo se describe cómo solucionar posibles problemas que pueden 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 de .NET Native. 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 .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 sabes si la aplicación se compiló con .NET Native.

    Resolución: Si se invoca el compilador de .NET Native, observará tiempos de compilación más largos y el Administrador de tareas mostrará varios procesos de componentes de .NET Native, 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 encuentra 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 y compilación). 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:

    Para obtener más información, vea Reflection and .NET Native (Reflexión y .NET Native).

Vea también