cargar ensamblado de crystal

08/03/2005 - 14:03 por Pablo Diaz Molina | Informe spam
Hola a todos tengo el siguiente codigo para cargar en un hilo aparte los
ensamblados de crystal report al iniciar mi aplicación para que cuando vaya
a imprimir un informe, la primera vez no tarde un ratillo. Al cargar los
ensamblados me dice que no encuentra el ensamblado o algunas d sus
dependcias. A ver si alguien me puede ayudar con este problemilla

Public Shared Sub ThreadCargarMotorCrystal()

Try

Dim ensamblado As [Assembly]

ensamblado [Assembly].Load("CrystalDecisions.CrystalReports.Engine.dll")

ensamblado = [Assembly].Load("CrystalDecisions.ReportSource.dll")

ensamblado = [Assembly].Load("CrystalDecisions.Shared.dll")

ensamblado = [Assembly].Load("CrystalDecisions.Windows.Forms.dll")

Catch ex As Exception

End Try

End Sub

Private Sub New()

MyBase.New()

InitializeComponent()

precargas = False

Try

Dim t As New Thread(AddressOf ThreadCargarMotorCrystal)

t.Start()

Catch ex As Exception

End Try

End Sub



Pablo.-

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
08/03/2005 - 19:31 | Informe spam
Pablo,

Te falta la ruta. Yo tengo algo similar en un proyecto:

string nombre = "C:\\Archivos de programa\\Archivos comunes\\Crystal
Decisions"
+ "\\2.5\\managed\\CrystalDecisions.CrystalReports.Engine.dll";
Assembly a = Assembly.LoadFrom(nombre);

Slds - Octavio

"Pablo Diaz Molina" escribió en el mensaje
news:
Hola a todos tengo el siguiente codigo para cargar en un hilo aparte los
ensamblados de crystal report al iniciar mi aplicación para que cuando
vaya
a imprimir un informe, la primera vez no tarde un ratillo. Al cargar los
ensamblados me dice que no encuentra el ensamblado o algunas d sus
dependcias. A ver si alguien me puede ayudar con este problemilla

Public Shared Sub ThreadCargarMotorCrystal()

Try

Dim ensamblado As [Assembly]

ensamblado > [Assembly].Load("CrystalDecisions.CrystalReports.Engine.dll")

ensamblado = [Assembly].Load("CrystalDecisions.ReportSource.dll")

ensamblado = [Assembly].Load("CrystalDecisions.Shared.dll")

ensamblado = [Assembly].Load("CrystalDecisions.Windows.Forms.dll")

Catch ex As Exception

End Try

End Sub

Private Sub New()

MyBase.New()

InitializeComponent()

precargas = False

Try

Dim t As New Thread(AddressOf ThreadCargarMotorCrystal)

t.Start()

Catch ex As Exception

End Try

End Sub



Pablo.-


Respuesta Responder a este mensaje
#2 Pablo Diaz Molina
09/03/2005 - 09:34 | Informe spam
Hola Octavio, muchas gracias por tu respuesta. Ya sabia que tb podia
cambiarlo con el LoadFrom, pero como dpendiendo del equipo dnd este
instalado el cliente la dll estará en una u otra ruta pues no puedo cargar
el ensamblado de la forma que me indicas

Saludos Pablo.-
"Octavio Hernandez" escribió en el mensaje
news:%
Pablo,

Te falta la ruta. Yo tengo algo similar en un proyecto:

string nombre = "C:\\Archivos de programa\\Archivos comunes\\Crystal
Decisions"
+ "\\2.5\\managed\\CrystalDecisions.CrystalReports.Engine.dll";
Assembly a = Assembly.LoadFrom(nombre);

Slds - Octavio

"Pablo Diaz Molina" escribió en el mensaje
news:
> Hola a todos tengo el siguiente codigo para cargar en un hilo aparte los
> ensamblados de crystal report al iniciar mi aplicación para que cuando
> vaya
> a imprimir un informe, la primera vez no tarde un ratillo. Al cargar los
> ensamblados me dice que no encuentra el ensamblado o algunas d sus
> dependcias. A ver si alguien me puede ayudar con este problemilla
>
> Public Shared Sub ThreadCargarMotorCrystal()
>
> Try
>
> Dim ensamblado As [Assembly]
>
> ensamblado > > [Assembly].Load("CrystalDecisions.CrystalReports.Engine.dll")
>
> ensamblado = [Assembly].Load("CrystalDecisions.ReportSource.dll")
>
> ensamblado = [Assembly].Load("CrystalDecisions.Shared.dll")
>
> ensamblado [Assembly].Load("CrystalDecisions.Windows.Forms.dll")
>
> Catch ex As Exception
>
> End Try
>
> End Sub
>
> Private Sub New()
>
> MyBase.New()
>
> InitializeComponent()
>
> precargas = False
>
> Try
>
> Dim t As New Thread(AddressOf ThreadCargarMotorCrystal)
>
> t.Start()
>
> Catch ex As Exception
>
> End Try
>
> End Sub
>
>
>
> Pablo.-
>
>


Respuesta Responder a este mensaje
#3 Octavio Hernandez
09/03/2005 - 09:53 | Informe spam
Pablo,

Yo también pensé eso inicialmente, pero fíjate que cuando se instala Crystal
para .NET (o cualquier aplicación que lo utilice) los ensamblados no sólo se
meten en el GAC, sino también en Archivos comunes... Y el método
Assembly.Load() lo primero que hace es ver si ese ensamblado está en el GAC,
y si está lo carga de ahí.

Para indicar directamente el ensamblado del GAC deberás usar un nombre
completo del tipo

"Foo.Bar, Version=2.0.205.0, Culture=neutral,
PublicKeyTokenY388ae2d2746794"

ncluyendo versión, cultura y token de clave pública.

Un buen blog sobre el tema es éste:

http://www.hanselman.com/blog/MoreO...blies.aspx

Slds - Octavio


"Pablo Diaz Molina" escribió en el mensaje
news:
Hola Octavio, muchas gracias por tu respuesta. Ya sabia que tb podia
cambiarlo con el LoadFrom, pero como dpendiendo del equipo dnd este
instalado el cliente la dll estará en una u otra ruta pues no puedo cargar
el ensamblado de la forma que me indicas

Saludos Pablo.-
"Octavio Hernandez" escribió en el mensaje
news:%
Pablo,

Te falta la ruta. Yo tengo algo similar en un proyecto:

string nombre = "C:\\Archivos de programa\\Archivos comunes\\Crystal
Decisions"
+ "\\2.5\\managed\\CrystalDecisions.CrystalReports.Engine.dll";
Assembly a = Assembly.LoadFrom(nombre);

Slds - Octavio

"Pablo Diaz Molina" escribió en el mensaje
news:
> Hola a todos tengo el siguiente codigo para cargar en un hilo aparte
> los
> ensamblados de crystal report al iniciar mi aplicación para que cuando
> vaya
> a imprimir un informe, la primera vez no tarde un ratillo. Al cargar
> los
> ensamblados me dice que no encuentra el ensamblado o algunas d sus
> dependcias. A ver si alguien me puede ayudar con este problemilla
>
> Public Shared Sub ThreadCargarMotorCrystal()
>
> Try
>
> Dim ensamblado As [Assembly]
>
> ensamblado >> > [Assembly].Load("CrystalDecisions.CrystalReports.Engine.dll")
>
> ensamblado =
> [Assembly].Load("CrystalDecisions.ReportSource.dll")
>
> ensamblado = [Assembly].Load("CrystalDecisions.Shared.dll")
>
> ensamblado > [Assembly].Load("CrystalDecisions.Windows.Forms.dll")
>
> Catch ex As Exception
>
> End Try
>
> End Sub
>
> Private Sub New()
>
> MyBase.New()
>
> InitializeComponent()
>
> precargas = False
>
> Try
>
> Dim t As New Thread(AddressOf ThreadCargarMotorCrystal)
>
> t.Start()
>
> Catch ex As Exception
>
> End Try
>
> End Sub
>
>
>
> Pablo.-
>
>






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