none
VS 2008 SP1 sobre Windows 2003 SP2 Las referencias a DLL's se pierden

    Question

  • Buenas a todos, mi consulta es sobre ASp .Net:

    Tengo unas DLL's que me enviaron de una empresa a que nos hizo un desarrollo.

    Las DLL funcionan bien sober Windows XP, sin embargo cuando las cargo en mi PC, que tiene un Windows 2003 Server SP2 y un VS 2008 SP1, el VS me indica que no se puede tener acceso a la referencia de la DLL, pese a que está en la carpeta Bin y lo agrego como referencia. Además, en ocasiones ni siquiera se muestran las DLL's en la ventana de Propiedades, opción Referencias.

    Al escribir este post, he compliado mi Web en una pc y la he puesto en mi servidor Windows Server 2003 y no funciona... pero al probarlo en un Windows XP, funciona sin problemas, la misma aplicacion.

    No sé cual puede ser el problema, a alguien le ha pasado o alguien tien alguna referencia que me pueda servir?

    Saludos cordiales.


    Existen 10 tipos de personas en el mundo. Los que entienden binario y los que no.
    Thursday, September 24, 2009 1:21 AM

Answers

  • SOLUCION!

    Después de darle muchas vueltas al asunto me dí cuenta de que el problema era porque las DLL (creadas con C# .Net) que yo estaban usando pasaban por un problema similar.

    Yo tenía dos grupos de DLL, y en ambos grupos, cada uno, por separado me pasaba lo mismo.

    En el primer grupo, se trataba de DLL's compiladas en PC's de 32 bits y la pc que yo estaba usando era de 64 bits, razón por la cual, no se podían agregar, mi problema radicaba en que VS 2008 no me enviaba ningun mensaje alertándome sobre el tema. Lo que tuve que hacer es obtener el código fuente de las DLL en .Net

    En el segundo grupo de DLL's ocurria que la DLL base (por asi llamar a la que las demás referenciaban) tenía una referencia a una DLL nativa de Windows de 32 bits, y nuevamente, como mi PC era de 64 bits (igual que mi server de producción) no podía agregar la referencia porque en una PC de 64 bits no existe esa DLL (un nombre asi como xLib86.dll, o parecido) y nuevamente, al intentar agregar la DLL .Net a mi proyecto, no lo reconocía porque no encontraba la librería de 32 bits.  Nuevamente, VS2008 no me avisaba de este problema, y la solución surge por obtener el código fuente de las DLL y modificar el llamado a la DLL de 32 bits por rutinas del propio .Net.

    Bueno, espero que mi tormento en este caso ayude a alguien mas si acaso le ocurre algo similar.

    Para los que no saben como obtener el código fuente de una DLL de .Net, pues deben descargarse el programa gratuito .Net Reflector desde la web: http://www.red-gate.com/products/reflector/ sin lugar a dudas, una herramienta que todo desarrollador .Net debe conocer.

    Saludos.
    Existen 10 tipos de personas en el mundo. Los que entienden binario y los que no.
    • Marked as answer by hanz el Geek Friday, October 02, 2009 3:15 PM
    Friday, October 02, 2009 3:14 PM

All replies

  • hola

    Te recomendaria que muevas las dll que estas utilizando para realizar referencia a otra carpeta dentro de la estructura de tu solucion y las refencies desde alli


    o sea si tu solucion esta en la carpeta
    c:\Desarrollo\TestSolution

    pon las dll externas en la carpeta
    c:\Desarrollo\TestSolution\lib
    o
    c:\Desarrollo\TestSolution\External Referencies

    el nombre que mas te guste, y luego agrega las referencias pero apuntando a esta otra carpeta

    resulta que la carpeta bin es usada por el propio VS para generar las salidas en la compilacion y alli es donde pone las mismas dll que referencias con los cual a veces puede suceder que se pierdan 

    pero al tenerlas en otra carpeta distinta las copiara correctamente al bin



    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Proposed as answer by devsoftx Thursday, September 24, 2009 1:30 AM
    Thursday, September 24, 2009 1:29 AM
  • Leandro,

    Lo he intentado pero aún no reconoce la DLL, ni la referencia hacia ella, lo cual me impide trabajar cómodamente; gracias por el intento de todos modos.....

    Seguiré buscando información al respecto pero se siguen aceptando sugerencias...

    Saludos.
    Existen 10 tipos de personas en el mundo. Los que entienden binario y los que no.
    Thursday, September 24, 2009 2:55 PM
  • SOLUCION!

    Después de darle muchas vueltas al asunto me dí cuenta de que el problema era porque las DLL (creadas con C# .Net) que yo estaban usando pasaban por un problema similar.

    Yo tenía dos grupos de DLL, y en ambos grupos, cada uno, por separado me pasaba lo mismo.

    En el primer grupo, se trataba de DLL's compiladas en PC's de 32 bits y la pc que yo estaba usando era de 64 bits, razón por la cual, no se podían agregar, mi problema radicaba en que VS 2008 no me enviaba ningun mensaje alertándome sobre el tema. Lo que tuve que hacer es obtener el código fuente de las DLL en .Net

    En el segundo grupo de DLL's ocurria que la DLL base (por asi llamar a la que las demás referenciaban) tenía una referencia a una DLL nativa de Windows de 32 bits, y nuevamente, como mi PC era de 64 bits (igual que mi server de producción) no podía agregar la referencia porque en una PC de 64 bits no existe esa DLL (un nombre asi como xLib86.dll, o parecido) y nuevamente, al intentar agregar la DLL .Net a mi proyecto, no lo reconocía porque no encontraba la librería de 32 bits.  Nuevamente, VS2008 no me avisaba de este problema, y la solución surge por obtener el código fuente de las DLL y modificar el llamado a la DLL de 32 bits por rutinas del propio .Net.

    Bueno, espero que mi tormento en este caso ayude a alguien mas si acaso le ocurre algo similar.

    Para los que no saben como obtener el código fuente de una DLL de .Net, pues deben descargarse el programa gratuito .Net Reflector desde la web: http://www.red-gate.com/products/reflector/ sin lugar a dudas, una herramienta que todo desarrollador .Net debe conocer.

    Saludos.
    Existen 10 tipos de personas en el mundo. Los que entienden binario y los que no.
    • Marked as answer by hanz el Geek Friday, October 02, 2009 3:15 PM
    Friday, October 02, 2009 3:14 PM