Cómo diagnosticar problemas del Editor de modelos

La información principal que necesitamos se encuentra en la carpeta con archivos de registro en %USERPROFILE%\AppData\Roaming\eXpressAppFramework.

(ME) consta de dos partes: una extensión de Visual Studio (VS) (DevExpress.ExpressApp.Design.CorePackage.2022 o DevExpress.ExpressApp.Design.NetCorePackage.2022) y un proceso de ‘servidor’ que ejecuta el trabajo real.

Cuando abre un archivo *.xafml, la extensión VS para Model Editor pasa este archivo al proceso ‘servidor’.

Model Editor(ME) tiene dos versiones: una para .NET y otra para .NET Framework.

Cuando encuentra un problema, el primer paso para resolverlo es determinar qué versión está utilizando. Para hacer esto, consulte los siguientes archivos en la carpeta de registros:
CorePackage_xxxx-xx-x–xx-xx-xx.log
NETCorePackage_xxxx-xx-x–xx-xx-xx.log

Busque la cadena ‘CreateEditorInstance’ en ambos archivos. Esta cadena indica que ME intentó abrir un archivo *.xafml. Si el archivo ‘NETCore…log’ contiene esta cadena, su ME es la versión .NET.

Tipos de problemas:

  1. Problemas con la extensión VS para (ME).

Síntomas:

  • Error de VS con texto que indica que ‘XAFPackageV4’ no está instalado/cargado correctamente.
  • La siguiente ventana al abrir un archivo *.xafml:
    (Error al cargar el editor de modelos)
  • VS muestra el editor XML estándar en lugar de (ME) cuando abre un archivo xafml.
  • VS muestra una ventana de excepción cuando abre un archivo *.xafml.

Posibles causas y cómo solucionarlas.

  1. Las extensiones DevExpress.ExpressApp.Design.NETCorePackage.2022 o DevExpress.ExpressApp.Design.CorePackage.2022 no están instaladas o están deshabilitadas. Asegúrese de que las extensiones NETCorePackage (para proyectos .NET Core) o CorePackage (para proyectos .NET Framework) estén instaladas y habilitadas:
  1. Si las extensiones requeridas no están instaladas, reinstale la instalación DX desde cero.
  2. Algún problema medioambiental. Intente actualizar su VS a la última versión.
  3. Si los dos primeros pasos no ayudaron, busque el texto de excepción en los archivos CorePackage.log y NETCorePackage.log en la carpeta de registros.
  • Si ve que su solución hace referencia a paquetes de una versión anterior de DX, asegúrese de que esta versión esté instalada (ME no funciona sin instalación).
  • Si ve que un archivo de registro tiene un registro para un ensamblado de una versión mientras su solución hace referencia a otra, verifique que todas las referencias en los archivos *.csproj sean correctas.
  • Si ve otras excepciones que no sabe cómo solucionar o si el archivo NETCorePackage no contiene la cadena ‘Comandos creados’, reinstale la instalación de DX desde cero.

2. Problemas con el proceso del servidor.

Síntomas:
Cuando abre un archivo *.xafml, VS muestra las siguientes excepciones en una de sus pestañas. Por ejemplo:

  • Posibles causas y cómo solucionarlas

Si el proceso del servidor no se inicia o no procesa el archivo *.xafml, verifique si ‘ ModelEditorServerNETCore_xxx.log ‘. existe el archivo

Si el archivo no existe, actualice VS e instale el SDK necesario. Consulte T1072011 – Core – Model Editor y DBUpdater para proyectos .NET 5 requieren la instalación de .NET 6 Runtime (x86) para Visual Studio 2019 .

Si el archivo ‘ModelEditorServerNETCore_xxx.log’ existe y contiene excepciones, investigue los textos de excepción para identificar y resolver los problemas.

Si el archivo ‘ModelEditorServerNETCore_xxx.log’ existe y no contiene excepciones, verifique los registros del Visor de eventos como se describe en T1146700 – Core – El host del servidor Model Editor finalizó inesperadamente .

3. Problemas con una solución.

Síntomas:
Cuando abre un archivo *.xafml, VS muestra las siguientes excepciones en una de sus pestañas. Por ejemplo:

  • Excepciones con los siguientes mensajes:
  • ‘No se puede crear una instancia…’.
  • ‘No se pudo encontrar el descendiente de ModuleBase…’.

Posibles causas y cómo solucionarlas

El (ME) no logra construir este proyecto en particular. Consulte los registros ‘ModelEditorServerXXX’ y ‘ModelEditorClientXXX’.

Una forma común de resolver el problema es cambiar la estructura del proyecto de la solución, ajustar el marco de destino de la solución o modificar el código en el constructor de la aplicación.

Por ejemplo:

  • La solución hace referencia a paquetes de una versión específica que no están instalados en la máquina. ME no puede funcionar sin estas instalaciones. Para resolver este problema, sincronice las versiones de los componentes y paquetes instalados en la solución.
  • (ME) intenta crear una instancia de una aplicación XAF y falla porque hay código que no se puede ejecutar en tiempo de diseño (por ejemplo, haciendo referencia a un archivo de configuración). Para resolver esto, modifique el código. Por ejemplo, incluya el código ‘solo en tiempo de ejecución’ en declaraciones condicionales, como por ejemplo:
if(!DevExpress.ExpressApp.ModuleHelper.IsDesignMode){
    //runtime only code
}

Si una solución usa EF Core con un proveedor de base de datos que no es MSSQL, la clase ApplicationDbContextInitializer aún necesita usar la cadena de conexión para que MSSQL funcione correctamente en tiempo de diseño (en ME).


Por ejemplo, la siguiente solución utiliza SqLite:

public class DXApplication1SQLiteContextInitializer : DbContextTypesInfoInitializerBase {
    protected override DbContext CreateDbContext() {
        var optionsBuilder = new DbContextOptionsBuilder<DXApplication1SQLiteEFCoreDbContext>()
            .UseSqlServer(";") //MSSQL API
           // .UseSqlite(";") wrong for a solution with SqLite

Posted in XAF

Leave a Reply

Your email address will not be published.