Carga de ensamblado

12/05/2004 - 23:08 por Octavio Hernandez | Informe spam
Hola,

Tengo una pregunta sobre algo que no he hecho todavía y un poco ayuda
seguramente me ahorraría tiempo y dolores de cabeza. La idea es la
siguiente: tengo una biblioteca de clases que carga dinámicamente el
ensamblado principal de Crystal Reports para luego acceder a su contenido
mediante reflexión. Ahora mismo utilizo la versión del ensamblado que
instala Crystal en la carpeta de archivos comunes:

Assembly a = Assembly.LoadFrom(
@"C:\Archivos de programa\Archivos
comunes\_etc_\CrystalDecisions.CrystalReports.Engine.dll");

En la versión definitiva de la biblioteca, quiero que el ensamblado se
cargue del GAC, que es lo suyo. Y además me valdría cualquier versión del
ensamblado posterior a la 2.0 (corr. a CR9) que estuviera instalada. Tampoco
importaría que el idioma la versión de Crystal fuera castellano, inglés u
otro.

La pregunta es: ¿cuál sería la variante más adecuada de Assembly.Load() a
utilizar y con qué valores de parámetros?

Salu2,

Octavio

Preguntas similare

Leer las respuestas

#1 Bela Istok
14/05/2004 - 00:54 | Informe spam
You can use the Load Method
Assembly.Load("CrystalDecisions.CrystalReports.Engine.dll")

It's search for the GAC if the assembly it's not found in the application
folder.

"Octavio Hernandez" wrote in message
news:
Hola,

Tengo una pregunta sobre algo que no he hecho todavía y un poco ayuda
seguramente me ahorraría tiempo y dolores de cabeza. La idea es la
siguiente: tengo una biblioteca de clases que carga dinámicamente el
ensamblado principal de Crystal Reports para luego acceder a su contenido
mediante reflexión. Ahora mismo utilizo la versión del ensamblado que
instala Crystal en la carpeta de archivos comunes:

Assembly a = Assembly.LoadFrom(
@"C:\Archivos de programa\Archivos
comunes\_etc_\CrystalDecisions.CrystalReports.Engine.dll");

En la versión definitiva de la biblioteca, quiero que el ensamblado se
cargue del GAC, que es lo suyo. Y además me valdría cualquier versión del
ensamblado posterior a la 2.0 (corr. a CR9) que estuviera instalada.


Tampoco
importaría que el idioma la versión de Crystal fuera castellano, inglés u
otro.

La pregunta es: ¿cuál sería la variante más adecuada de Assembly.Load() a
utilizar y con qué valores de parámetros?

Salu2,

Octavio


Respuesta Responder a este mensaje
#2 Bela Istok
14/05/2004 - 00:57 | Informe spam
Perdón por la respuesta en ingles no me fije el idioma en el cual estaba
escrito el mensaje, pero básicamente es que utilices el método Load de
Assembly, ya que este busca el DLL en la carpeta local o en el GAC, pero si
le especificas la información como versión y cultura es mejor ya que el
identifica de forma única al assembly.



"Octavio Hernandez" wrote in message
news:
Hola,

Tengo una pregunta sobre algo que no he hecho todavía y un poco ayuda
seguramente me ahorraría tiempo y dolores de cabeza. La idea es la
siguiente: tengo una biblioteca de clases que carga dinámicamente el
ensamblado principal de Crystal Reports para luego acceder a su contenido
mediante reflexión. Ahora mismo utilizo la versión del ensamblado que
instala Crystal en la carpeta de archivos comunes:

Assembly a = Assembly.LoadFrom(
@"C:\Archivos de programa\Archivos
comunes\_etc_\CrystalDecisions.CrystalReports.Engine.dll");

En la versión definitiva de la biblioteca, quiero que el ensamblado se
cargue del GAC, que es lo suyo. Y además me valdría cualquier versión del
ensamblado posterior a la 2.0 (corr. a CR9) que estuviera instalada.


Tampoco
importaría que el idioma la versión de Crystal fuera castellano, inglés u
otro.

La pregunta es: ¿cuál sería la variante más adecuada de Assembly.Load() a
utilizar y con qué valores de parámetros?

Salu2,

Octavio


Respuesta Responder a este mensaje
#3 Octavio Hernandez
14/05/2004 - 01:16 | Informe spam
Bela,

Gracias por la respuesta.
Lo que más me interesaría saber sería si es posible especificar en código o
configurar de alguna manera el tema de la selección automática de versiones.
Por ejemplo, que la versión del ensamblado debe ser 2.0 ó superior, y que
por ejemplo si están disponibles la 2.0 y la 2.5, que seleccione la más
reciente. Sin embargo, si la versión disponible es la 1.1 (anterior a
Crystal 9), la carga debe fallar y lanzar una excepción, porque hago uso de
cosas que antes no existían y el proceso fallaría de todos modos.

Salu2,

Octavio

"Bela Istok" escribió en el mensaje
news:
Perdón por la respuesta en ingles no me fije el idioma en el cual estaba
escrito el mensaje, pero básicamente es que utilices el método Load de
Assembly, ya que este busca el DLL en la carpeta local o en el GAC, pero


si
le especificas la información como versión y cultura es mejor ya que el
identifica de forma única al assembly.



"Octavio Hernandez" wrote in message
news:
> Hola,
>
> Tengo una pregunta sobre algo que no he hecho todavía y un poco ayuda
> seguramente me ahorraría tiempo y dolores de cabeza. La idea es la
> siguiente: tengo una biblioteca de clases que carga dinámicamente el
> ensamblado principal de Crystal Reports para luego acceder a su


contenido
> mediante reflexión. Ahora mismo utilizo la versión del ensamblado que
> instala Crystal en la carpeta de archivos comunes:
>
> Assembly a = Assembly.LoadFrom(
> @"C:\Archivos de programa\Archivos
> comunes\_etc_\CrystalDecisions.CrystalReports.Engine.dll");
>
> En la versión definitiva de la biblioteca, quiero que el ensamblado se
> cargue del GAC, que es lo suyo. Y además me valdría cualquier versión


del
> ensamblado posterior a la 2.0 (corr. a CR9) que estuviera instalada.
Tampoco
> importaría que el idioma la versión de Crystal fuera castellano, inglés


u
> otro.
>
> La pregunta es: ¿cuál sería la variante más adecuada de Assembly.Load()


a
> utilizar y con qué valores de parámetros?
>
> Salu2,
>
> Octavio
>
>


Respuesta Responder a este mensaje
#4 Bela Istok
14/05/2004 - 01:25 | Informe spam
Assembly.Load("Assembly text name, Version, Culture, PublicKeyToken");
Puedes usar ese formato cuando llames al metodo Load, así te va a cargar por
lo menos la version que tu requieres.

"Octavio Hernandez" wrote in message
news:
Bela,

Gracias por la respuesta.
Lo que más me interesaría saber sería si es posible especificar en código


o
configurar de alguna manera el tema de la selección automática de


versiones.
Por ejemplo, que la versión del ensamblado debe ser 2.0 ó superior, y que
por ejemplo si están disponibles la 2.0 y la 2.5, que seleccione la más
reciente. Sin embargo, si la versión disponible es la 1.1 (anterior a
Crystal 9), la carga debe fallar y lanzar una excepción, porque hago uso


de
cosas que antes no existían y el proceso fallaría de todos modos.

Salu2,

Octavio

"Bela Istok" escribió en el mensaje
news:
> Perdón por la respuesta en ingles no me fije el idioma en el cual estaba
> escrito el mensaje, pero básicamente es que utilices el método Load de
> Assembly, ya que este busca el DLL en la carpeta local o en el GAC, pero
si
> le especificas la información como versión y cultura es mejor ya que el
> identifica de forma única al assembly.
>
>
>
> "Octavio Hernandez" wrote in message
> news:
> > Hola,
> >
> > Tengo una pregunta sobre algo que no he hecho todavía y un poco ayuda
> > seguramente me ahorraría tiempo y dolores de cabeza. La idea es la
> > siguiente: tengo una biblioteca de clases que carga dinámicamente el
> > ensamblado principal de Crystal Reports para luego acceder a su
contenido
> > mediante reflexión. Ahora mismo utilizo la versión del ensamblado que
> > instala Crystal en la carpeta de archivos comunes:
> >
> > Assembly a = Assembly.LoadFrom(
> > @"C:\Archivos de programa\Archivos
> > comunes\_etc_\CrystalDecisions.CrystalReports.Engine.dll");
> >
> > En la versión definitiva de la biblioteca, quiero que el ensamblado se
> > cargue del GAC, que es lo suyo. Y además me valdría cualquier versión
del
> > ensamblado posterior a la 2.0 (corr. a CR9) que estuviera instalada.
> Tampoco
> > importaría que el idioma la versión de Crystal fuera castellano,


inglés
u
> > otro.
> >
> > La pregunta es: ¿cuál sería la variante más adecuada de


Assembly.Load()
a
> > utilizar y con qué valores de parámetros?
> >
> > Salu2,
> >
> > Octavio
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida