Separar .exe de dll

17/11/2008 - 15:48 por Pintamono | Informe spam
Que tal, tengo una aplicacion windows y me han solicitado que las
dll's de esa aplicacion queden en una carpeta distinta de la
aplicacion, es decir,

c:\Aplicacion\aplicacion.exe
c:\Aplicacion\dll\TodasLasDll.dll

Se puede?

Como lo configuro en VS2005?

Gracias.

Preguntas similare

Leer las respuestas

#6 Pintamono
17/11/2008 - 17:51 | Informe spam
Si, gracias, respondi antes de leer tu respuesta nueva..

gracias.


On 17 nov, 12:56, RFOG wrote:
Ya lo s , ya. Mira la respuesta que me he dado yo mismo.



On Mon, 17 Nov 2008 16:37:36 +0100, Pintamono wrote:
> On 17 nov, 11:59, RFOG wrote:
>> Si creo haber le do bien la documentaci n, ese escenario est  
>> contemplado
>> en C# y no tienes que hacer nada de nada siempre y cuando los  
>> ensamblados
>> en dll cuelguen de la misma carpeta que el ejecutable.

>> No te lo puedo asegurar porque no lo he probado nunca, y quiz s haya
>> malitnerpretado la documentaci n...

>> On Mon, 17 Nov 2008 15:48:06 +0100, Pintamono  
>> wrote:
>> > Que tal, tengo una aplicacion windows y me han solicitado que las
>> > dll's de esa aplicacion queden en una carpeta distinta de la
>> > aplicacion, es decir,

>> > c:\Aplicacion\aplicacion.exe
>> > c:\Aplicacion\dll\TodasLasDll.dll

>> > Se puede?

>> > Como lo configuro en VS2005?

>> > Gracias.

>> Microsoft Visual C++ MVP
>> ==> >> Mi blog sobre programaci n:http://geeks.ms/blogs/rfog
>> Momentos Leves:http://momentosleves.blogspot.com/
>> Cosas m as:http://rfog.blogsome.com/
>> Libros, ciencia ficci n y programaci n
>> > >> Si sabes que no llegar s a la meta, no te metas.

> Gracias, pero no me funciono..

> coloque todo dentro de una carpeta llamada componentes y no funciono,
> me arrojaba un error...

Microsoft Visual C++ MVP
==> Mi blog sobre programaci n:http://geeks.ms/blogs/rfog
Momentos Leves:http://momentosleves.blogspot.com/
Cosas m as:http://rfog.blogsome.com/
Libros, ciencia ficci n y  programaci n
> Si sabes que no llegar s a la meta, no te metas.
Respuesta Responder a este mensaje
#7 RFOG
17/11/2008 - 18:08 | Informe spam
Si el que sabe, sabe, je je.


PS: Quién me mandaría a mi meterme en camisas de once varas.

On Mon, 17 Nov 2008 16:54:04 +0100, Alberto Poblacion
wrote:

"RFOG" wrote in message news:
Si creo haber leído bien la documentación, ese escenario está
contemplado en C# y no tienes que hacer nada de nada siempre y cuando
los ensamblados en dll cuelguen de la misma carpeta que el ejecutable.



No, no cuela. Para que una DLL se encuentre de forma automática
dentro de una subcarpeta tiene que llamarse igual que la carpeta. Por
ejemplo, un assembly llamado Rutinas.dll dentro de una carpeta llamada
Rutinas, colgada de la misma carpeta que el ejecutable, sí que se
encuentra.

Puedes comprobarlo activando el Log de fusión y examinándolo con el
FUSLOGVW (Fusion Log Viewer), que te dice las ubicaciones donde va
buscando los ensamblados que pide el programa.

Para que el runtime localice las DLLs debajo de una subcarpeta, hay
que añadir un "<probing.../> dentro del app.config
(miprograma.exe.config):

<configuration>
<runtime>
<assemblyBinding
xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="MiCarpeta"/>
</assemblyBinding>
</runtime>
</configuration>






Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
Si sabes que no llegarás a la meta, no te metas.
Respuesta Responder a este mensaje
#8 xcal
18/11/2008 - 17:35 | Informe spam
hola grupo,

y no hay nada parecido a lo que seria

LoadMyDll( dllpath );

y que permita escribir y usar inmediatamente los métodos de la libreria?
sin mas pasos intermedios.

creo que asi me gustaria mas, para poder cambiar la ruta
de forma programable. Estuve intentando Assembly.Load
pero la reflexion me obligaria a usar pasos intermedios antes
de usar los métodos si es que llego a usarlos.

saludos, Carlos

"Alberto Poblacion"
escribió en el mensaje news:O5pX$
"RFOG" wrote in message news:
Si creo haber leído bien la documentación, ese escenario está contemplado
en C# y no tienes que hacer nada de nada siempre y cuando los ensamblados
en dll cuelguen de la misma carpeta que el ejecutable.



No, no cuela. Para que una DLL se encuentre de forma automática dentro
de una subcarpeta tiene que llamarse igual que la carpeta. Por ejemplo, un
assembly llamado Rutinas.dll dentro de una carpeta llamada Rutinas,
colgada de la misma carpeta que el ejecutable, sí que se encuentra.

Puedes comprobarlo activando el Log de fusión y examinándolo con el
FUSLOGVW (Fusion Log Viewer), que te dice las ubicaciones donde va
buscando los ensamblados que pide el programa.

Para que el runtime localice las DLLs debajo de una subcarpeta, hay que
añadir un "<probing.../> dentro del app.config (miprograma.exe.config):

<configuration>
<runtime>
<assemblyBinding
xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="MiCarpeta"/>
</assemblyBinding>
</runtime>
</configuration>

Respuesta Responder a este mensaje
#9 Alberto Poblacion
18/11/2008 - 18:20 | Informe spam
"xcal" <d22> wrote in message news:
y no hay nada parecido a lo que seria

LoadMyDll( dllpath );

y que permita escribir y usar inmediatamente los métodos de la libreria?
sin mas pasos intermedios.



Podrías implementar el evento AssemblyResolve del
AppDomain.CurrentDomain, y dentro del evento realizar tú mismo las
operaciones necesarias para devolver el Assembly.
Respuesta Responder a este mensaje
#10 Lord Voldemort
18/11/2008 - 18:43 | Informe spam
y el que no sabe es jefe..


"RFOG" escribió en el mensaje de noticias
news:
Si el que sabe, sabe, je je.


PS: Quién me mandaría a mi meterme en camisas de once varas.

On Mon, 17 Nov 2008 16:54:04 +0100, Alberto Poblacion
wrote:

"RFOG" wrote in message news:
Si creo haber leído bien la documentación, ese escenario está
contemplado en C# y no tienes que hacer nada de nada siempre y cuando
los ensamblados en dll cuelguen de la misma carpeta que el ejecutable.



No, no cuela. Para que una DLL se encuentre de forma automática
dentro de una subcarpeta tiene que llamarse igual que la carpeta. Por
ejemplo, un assembly llamado Rutinas.dll dentro de una carpeta llamada
Rutinas, colgada de la misma carpeta que el ejecutable, sí que se
encuentra.

Puedes comprobarlo activando el Log de fusión y examinándolo con el
FUSLOGVW (Fusion Log Viewer), que te dice las ubicaciones donde va
buscando los ensamblados que pide el programa.

Para que el runtime localice las DLLs debajo de una subcarpeta, hay
que añadir un "<probing.../> dentro del app.config
(miprograma.exe.config):

<configuration>
<runtime>
<assemblyBinding
xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="MiCarpeta"/>
</assemblyBinding>
</runtime>
</configuration>






Microsoft Visual C++ MVP
==> Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
> Si sabes que no llegarás a la meta, no te metas.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida