none
Para que se registran las .dll en un proyecto web ASP.NET RRS feed

  • Pregunta

  • Buenas a todos.

    Estoy creando una aplicación web con ASP.NET que utiliza varias .dll de otros proyectos anteriores (aplicaciones de escritorio programadas en VB.NET)

    En un Try Catch que tengo en uno de los formularios, la excepción me pide tener una .dll en la carpeta bin donde tengo las demás. 

    Me gustaría saber cuál es la diferencia entre registrar la Referencia en el proyecto, añadiéndola a Referencias, y simplemente tener la .dll en la carpeta bin.

    Muchas gracias a todos. 

    Un cordial saludo



    miércoles, 20 de septiembre de 2017 10:30

Respuestas

  • Añadir la Referencia al proyecto permite que el compilador la reconozca, y en consecuencia puedan compilarse las líneas de código que llaman a las clases que hay en la DLL.

    Añadir la DLL a la carpeta bin permite que el código ejecutable encuentre la DLL en tiempo de ejecución.

    Mucha gente piensa que lo primero implica lo segundo. Estrictamente hablando no es cierto, es decir, el mero hecho de tener una Referencia, y en consecuencia que el código se compile correctamente, no garantiza que en tiempo de ejecución el programa ejecutable sea capaz de encontrar la DLL para llamarla. La ubicación en la que se encontraba la DLL en el momento de compilar NO se salva en el ejecutable, y el ejecutable no sabe encontrarla si no está en uno de los sitios que "conoce". En el caso de una aplicación web, uno de esos "sitios que conoce" es la carpeta bin, por lo que una de las formas de conseguir que la DLL se encuentre es ubicarla en dicha carpeta. De hecho, el comportamiento predeterminado de Visual Studio cuando añades la Referencia es el de también copiarla al bin, a no ser que se encuentre en el GAC. Pero este comportamiento puede modifcarse desde las Propiedades de la Referencia.

    • Propuesto como respuesta osrol miércoles, 20 de septiembre de 2017 12:44
    • Marcado como respuesta MelaProgrammer miércoles, 20 de septiembre de 2017 16:12
    miércoles, 20 de septiembre de 2017 12:35

Todas las respuestas

  • Añadir la Referencia al proyecto permite que el compilador la reconozca, y en consecuencia puedan compilarse las líneas de código que llaman a las clases que hay en la DLL.

    Añadir la DLL a la carpeta bin permite que el código ejecutable encuentre la DLL en tiempo de ejecución.

    Mucha gente piensa que lo primero implica lo segundo. Estrictamente hablando no es cierto, es decir, el mero hecho de tener una Referencia, y en consecuencia que el código se compile correctamente, no garantiza que en tiempo de ejecución el programa ejecutable sea capaz de encontrar la DLL para llamarla. La ubicación en la que se encontraba la DLL en el momento de compilar NO se salva en el ejecutable, y el ejecutable no sabe encontrarla si no está en uno de los sitios que "conoce". En el caso de una aplicación web, uno de esos "sitios que conoce" es la carpeta bin, por lo que una de las formas de conseguir que la DLL se encuentre es ubicarla en dicha carpeta. De hecho, el comportamiento predeterminado de Visual Studio cuando añades la Referencia es el de también copiarla al bin, a no ser que se encuentre en el GAC. Pero este comportamiento puede modifcarse desde las Propiedades de la Referencia.

    • Propuesto como respuesta osrol miércoles, 20 de septiembre de 2017 12:44
    • Marcado como respuesta MelaProgrammer miércoles, 20 de septiembre de 2017 16:12
    miércoles, 20 de septiembre de 2017 12:35
  • Muchas gracias, me ha resultado de gran ayuda.

    Un saludo.

    miércoles, 20 de septiembre de 2017 16:13