miércoles, 13 de julio de 2011

Genexus Errores - Class not registered

Abstract 
Puede ocurrir el Error "class not registered" "Clase no registrada" en varios casos al querer usar funcionalidades de GeneXus y lo que debe hacerse es registrar la clase que corresponda con el comando REGASM desde el prompt de DOS.
 
Descripción Detallada 
Nota: Ejecutar el comando desde la ventana RUN de Windows NO es efectivo.

Algunos casos son:

1) Al intentar abrir el editor de temas.
Solución: Ejecutar
C:\<WINNT>\Microsoft.NET\Framework\<v1.1.4322>\regasm c:\<gx80>\gxthemeeditor.exe

2) Al crear un nuevo modelo con el Wizard.
C:\<WINNT>\Microsoft.NET\Framework\<v1.1.4322>\regasm c:\<gx80>\WizardNewModel.exe

3) Al ejecutar el WSDL inspector
Solución: Ejecutar el comando:
C:\<WINNT>\Microsoft.NET\Framework\<v1.1.4322>\regasm c:\<gx80>\GXWSDLInspector.exe

Notas:
1. En el caso del editor de temas la causa puede ser también que falte copiar en el <windows>\system32 los archivos mfc7X.dll y msvcr7X.dll. (Estas dos DLL son instaladas por el .NET Framework SDK o Visual Studio .NET -el SDK no es requerimiento ya que dichas DLL se pueden distribuir).
2. Utilizar siempre el framework más nuevo, registrar con el regasm de la versión más nueva, en el ejemplo "v1.1.4322"
3. En caso de utilizar una versión superior a la 8.0, colocar el path de la versión correspondiente para registrar el editor de temas.
4. Si puede ejecutar el wizard en forma independiente, desde el explorador de Windows, es porque está levantando correctamente el framework 1.1. Es posible indicarle la versión del framework que se utiliza para llamar a los utilitarios dentro de GX (con Interop). Para esto definir un archivo Gxw32.Exe.Config (en el directorio de instalación de GeneXus) que contenga:
<?xml version ="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v1.1.4322" />
</startup>
</configuration>

Por más información:
http://msdn2.microsoft.com/en-us/library/9w519wzk(VS.80).aspx - Explica cómo configurar el <app>.config para especificar el framework.

http://msdn2.microsoft.com/en-us/library/ms994381.aspx - Explica el por qué al ejecutar uno de los aplicativos .NET nuestros se levanta el framework correcto, pero cuando se hace a través de GX (interop) se levanta el último instalado.

Para usuarios con Windows Vista, o superior es requerimiento ejecutar los comando con la opción "Run as Administrator".

No hay comentarios:

Publicar un comentario