2008-11-06 20 views
5

Me pregunto qué incluir al construir mi proyecto. Tengo una biblioteca que necesito referenciar para que mi proyecto se construya, pero esa biblioteca tiene 10 dependencias. ¿Debo referirme también a esas dependencias o debería copiarlas al directorio de salida usando un evento post build?Dependencias y referencias: ¿a qué debería hacer referencia exactamente?

¿Cuál es la mejor práctica?

Me resulta confuso incluir todas esas dependencias, ya que el proyecto se compila bien sin ellas, ¿se las llama entonces dependencias de tiempo de ejecución? Mis referencias se llenan de dependencias irrelevantes para mi proyecto a pesar de que se usan en alguna biblioteca que estoy incluyendo.

Estoy usando Visual Studio.

¿Puede alguien darme una idea de cómo hacerlo bien?

Gracias.

Respuesta

1

Solo necesita agregar las referencias que usa directamente su proyecto.

Para ensamblados privados (aquellos que no están en el GAC) Visual Studio, de forma predeterminada, copiará los ensamblados referenciados (y sus dependencias) en el directorio de salida de su proyecto.

Para ensamblajes en el GAC Visual Studio no copia el ensamblado al que se hace referencia en el directorio de salida de su proyecto de forma predeterminada.

En ambos casos, puede cambiar el comportamiento cambiando la propiedad de referencia "Copiar local".

En mi humilde opinión, es una característica ingeniosa del entorno de construcción. En el mundo no administrado, depende de usted realizar un seguimiento de las dependencias de sus dependencias (generalmente a través de eventos de construcción previos o posteriores).

2

Es solo opinión. De cualquier manera, funcionará.

Personalmente, odio los archivos BAT posteriores a la compilación, así que incluiría las dependencias para copiarlos en el directorio de salida.

Otra opción es ponerles un enlace en su proyecto, como en un directorio de recursos. Tenga esto configurado en BuildAction = None, y CopyToOutputDirectory = CopyIfNewer

1

Supongo que está trabajando en Visual Studio.

La respuesta breve es incluir solo los ensamblajes necesarios para la compilación de su proyecto.

Hacer referencia a más ensamblados no debería causar ningún problema, ya que su aplicación cargará ensamblajes cuando sea necesario en tiempo de ejecución, pero tener una larga lista de referencias puede volverse confuso y complicado.

Su lista de referencias debe indicar lo que hace su programa y las funciones que utiliza.

+0

Entonces, ¿usted recomienda usar eventos de compilación posterior o alguna otra forma de proporcionar las dependencias de tiempo de ejecución para las bibliotecas a las que me refiero? – Fadeproof

+0

Bueno, es una cuestión de gusto realmente. Si sus ensamblajes están en el GAC, no necesita hacer nada, pero preferiría no saturar el proyecto. –

+1

Ninguno está en GAC, entonces ¿en ese caso debería usar el evento post-build? – Fadeproof

Cuestiones relacionadas