.net - net - Mejores prácticas para hacer referencia a asambleas de terceros
install.net library (3)
Si tengo que tratar con bibliotecas que no están registradas en el GAC, uso el siguiente método:
- Cree una carpeta "Libs" con todas las bibliotecas de terceros y sus dependencias en ella
- Referencia los que necesito
- Cree una acción posterior a la compilación que copie todos los archivos en la carpeta "Libs" a la carpeta "bin / debug" (o release)
Si no conoce las dependencias, puede usar Dependency Walker .
Me he estado preguntando cuáles son las mejores prácticas cuando se trata de hacer referencia a asambleas de terceros. Hace un tiempo, hice una pregunta " Dependencias y referencias: a qué debería hacer referencia exactamente " y recibí algo en lo que pensar, pero no estoy del todo convencido. Tengo una asamblea de terceros necesaria para construir mi proyecto y, de acuerdo con lo que he leído hasta ahora, solo debería hacer referencia a las asambleas necesarias para construir mi proyecto. Esto deja el problema de las dependencias de tiempo de ejecución del ensamblado de terceros. Si hago referencia a esos también, la lista de referencias se vuelve enorme (ya que hay varias dependencias) e incluye muchos ensamblajes. No tengo ni idea de qué es lo que realmente no está relacionado con mi proyecto. También quiero evitar el uso de métodos públicos en cualquiera de esos y simplemente usar el ensamblado principal de terceros. ¿Cómo puedo hacer esto de una manera decente? Cualquier ayuda es apreciada ya que estoy bastante confundido.
Para dar una idea de lo que estoy tratando aquí, la biblioteca de terceros usa hibernate y log4net junto con ensamblajes de interoperabilidad de oficina.
Gracias.
Una alternativa que he estado usando en muchos proyectos (C #) es:
- Haga una carpeta "Bin" en el directorio de la solución (el mismo nivel que los directorios del proyecto)
- Realice la salida de todos los proyectos ../Bin en lugar de bin / debug o bin / release
- Coloque los archivos que no sean resultado de la compilación en "Bin", incluidas las dependencias de la biblioteca, ciertos archivos de datos o lo que sea, según el proyecto.
- El contenido de "Bin" también va al control de fuente (sin la salida de compilación, por supuesto)
- Las bibliotecas directamente referenciadas por sus proyectos van a una carpeta de "Referencias" o "Libs" (a veces también intenté ponerlas también en Bin, pero en este caso debe recordar deshabilitar la copia de referencias al directorio de salida al agregar el referencia a su proyecto, que se vuelve tedioso en proyectos grandes)
No estoy seguro de si es una buena solución, pero me ha funcionado hasta ahora.
También puede usar NDepender para conocer y controlar exactamente lo que usa desde la biblioteca de niveles. Escribí un artículo sobre esto Controlando el uso de las bibliotecas