2010-06-15 17 views

Respuesta

25

No es una gran elección. Si tiene una solución con ambos proyectos, entonces no tiene sentido no utilizar una referencia de proyecto. Si su solución no tiene el proyecto, entonces tiene para usar una referencia de ensamblado.

Entonces, la verdadera pregunta debería ser: ¿creo una solución con ambos proyectos? Sí, siempre y cuando el proyecto esté todavía en la etapa de depuración y pueda requerir correcciones de errores.

+16

Es más complejo cuando tiene varias soluciones. El uso de una referencia de proyecto puede romper la construcción de otras soluciones que incluyen el proyecto de referencia y no el proyecto al que se hace referencia. A continuación, Visual Studio resuelve silenciosamente (!) La referencia del proyecto en una referencia de archivo al dll en bin/Debug, que es inesperada y se rompe si la solución se compila en Release. –

+0

Puede resolver esto agregando los proyectos principales primero a su solución siempre, y no agregue ningún proyecto sin sus proyectos principales (referenciados) –

+1

Solo para agregar - si usa la referencia dll en el proyecto A cuando hace clic en "Buscar todas las referencias" "en un método del proyecto B, la referencia del método del proyecto A no aparecerá en absoluto = receta para errores – BornToCode

2

Bueno, las referencias de proyectos son útiles cuando construye y prueba tanto en modo de depuración como de versión. Si agrega directamente una DLL, entonces quedará bloqueado en cualquier DLL concreta que se haya creado. La referencia del proyecto permite que esto sea una decisión de tiempo de compilación.

+0

Esto es correcto lo que está diciendo. Al mismo tiempo, no está causando problemas cuando se trabaja con ensamblados .NET. Contienen código IL que se compila más adelante en una máquina de destino en la primera ejecución. Un muy buen momento para tomar decisiones. –

16

Si solo tienes el dll, entonces estás atrapado con una referencia dll (obviamente).

Si tiene la fuente, generalmente es mejor utilizar una referencia de proyecto. Puede haber casos en los que tenga una biblioteca de utilidad que nunca va a cambiar, pero si existe la menor posibilidad de que necesite una solución de error, tener una referencia de proyecto hará que la depuración sea mucho más fácil.

-3

En relación con la arquitectura de su proyecto, siempre debe apegarse a los proyectos dentro del dominio de su problema. Debería utilizar el GAC, si eso es aplicable a su entorno.

+5

¿Qué tiene que ver el GAC con las referencias del proyecto frente a referencias dll en un archivo de proyecto de Visual Studio? – Abel

0

Resumen - Proyecto de referencia por el Proyecto por la DLL vs

de referencia por el proyecto

  • código es visible
  • encuentra, por ejemplo, todas las referencias en una clase (porque el código es visible)
  • mejor para las pruebas (sobre todo)
  • mejor para el rediseño de código (impacto)

de referencia por la DLL

código
  • se oculta
  • separación entre, por ejemplo, marco y el proyecto (para entregar de marco)
  • compilación más rápido (porque DLL ya está compilado)
Cuestiones relacionadas