PDA

Ver la Versión Completa : Problemas con Ensamblados


radaalvaro
11-02-2006, 08:19:52
Como estan compañeros Seguidores de BDS 2006,

Despues de estar triste con la noticia de la venta de los ID's de Borland, decidi seguir con mi Proyecto.

Bueno ire al grano, estoy Desarrollando en Delphi 2006 una aplicación Window Form con varias Capas, cada una de mis capas se encuentra en un Paquete (Ensamblado .dll); mis paquetes estan referenciados con el programa principal con la opcion deshabilitada de COPIA LOCAL, esto, para que sigan en su misma ubicaciòn... En tiempo de Diseño todo funciona a la perfeccion, pero en cuanto empiezo a ejecutar la aplicacion, ahi sale el error, me dice que no encuentra el ensamblado, y me muestra el nombre de mi PAQUETE (o Ensamblado .dll).

La pregunta es... si muchos componentes (de terceros), cuando son utilizados en el proyecto se referencian sus Dll's, y estan como COPY LOCAL, Falso, y funciona bien... POR QUE MIS ENSAMBLADOS, no pueden estar de la misma manera?...

Probe PONIENDO EL COPY LOCAL := TRUE, y todo funciona PERFECTAMENTE, pero NO quiero que esten mis ensamblados en el mismo directorio que el EJECUTABLE, como puedo hacer???

Si alguien tiene la solucion, seria de gran ayuda, sigo pensando y ya son las 4 de la madrugada.

Saludos.
LARGA VIDA DELPHI.

dec
11-02-2006, 10:44:14
Hola,


La pregunta es... si muchos componentes (de terceros), cuando son utilizados en el proyecto se referencian sus Dll's, y estan como COPY LOCAL, Falso, y funciona bien... POR QUE MIS ENSAMBLADOS, no pueden estar de la misma manera?...


Probablemente porque esos componentes instalaron sus ensamblados en el "Global Assembly Cache".


Probe PONIENDO EL COPY LOCAL := TRUE, y todo funciona PERFECTAMENTE, pero NO quiero que esten mis ensamblados en el mismo directorio que el EJECUTABLE, como puedo hacer???


Instala tus ensamblados en el "Global Assembly Cache". Para ello hay una herramienta que se incluye en el SDK de la plataforma .NET. Creo que se llama "gutil.exe", pero, en cualquier caso, investiga sobre lo dicho, puesto que creo que por ahí van los tiros.

radaalvaro
12-02-2006, 04:28:49
Muchas gracias DEC.

Tienes razón, cerca del Global Assembly Cache estaba la solucion, quizas no exactamente ahi, pero ese era el camino...

Nuevamente, muchas gracias.

Al González
18-06-2006, 05:30:39
¡Hola a todos!

...Global Assembly Cache...
¿Y eso que es?

Un abrazo dudoso.

Al González. :)

dec
18-06-2006, 21:05:11
Hola,

Se trata de un repositorio de ensamblados compartidos en donde se pueden encontrar los que la propia plataforma .NET pone a nuestra disposición, así como otros de terceros que así lo estimen oportuno, bien para su propio uso, bien para el nuestro.

Por ejemplo, los ensamblados que Borland incluye desde BDS 2005 son compartidos gracias a que se instalan en la "Global Assembly Cache". Los desarrolladores de componentes también sitúan ahí sus ensamblados, de manera que estos estén disponibles para los entornos de desarrollo, para nuestros programas, en definitiva.

Es un poco como si habláramos de la carpeta "System32" de Windows NT, en donde se almacenan ejecutables y DLL's de que distintos programas pueden hacer uso. Sin embargo, la "Global Assembly Cache" no tiene los problemas originados por el hecho de compartir diferentes versiones de distintas DLL's.

En la carpeta "C:\Windows\Assembly\" podemos ver cómo conviven ensamblados de igual nombre, de igual funcionalidad, pero de diferente versión, sin problema alguno. Cada programa hará uso de la versión que necesite evitando utilizar versiones "más modernas" pero que pudieran causar problemas, o versiones "más antiguas", con los mismos inconvenientes.

Cabe añadir que las herramientas y programas necesarios para realizar la instalación y desinstalación de ensamblados (básicamente es esto lo que se me ocurre que podemos querer hacer) en la "GAC" se incluyen con los "SDK" (Software development kit) de la plataforma .NET.

Al González
21-06-2006, 06:48:07
¡Hola a todos!

Muchas gracias por compartir esa información David.

Me despierta curiosidad, ¿quién ya está desarrollando bibliotecas de clases .NET? ¿Qué le hace falta al Framework de Microsoft? ¿Cómo va el mercado?

Un abrazo ensamblado.

Al González. :)

dec
21-06-2006, 10:04:57
Hola,

No sabría decirte Al sino que hay no pocas empresas dedicadas a la creación de componentes para la plataforma .NET.

Una página con bastante actividad en la que encontrar información (seguramente ya la conocerás) es The Code Project (http://thecodeproject.com/).

A la pregunta "qué le hace falta al .NET FrameWork", depende de tu imaginación, pero, también de la de los demás...

Piensa en qué le puede hacer falta a la VCL (Visual Component Library) de Delphi y cuenta los componentes de terceros que hay. :D