Sé que hay otras preguntas sobre este tema, y he consultado this question, pero me gustaría ver un poco más de discusión e información en ambos lados de esto: ¿es una mejor práctica agregar un proyecto a una solución y referencia el proyecto, o para agregar una referencia al .dll?Referencia del proyecto vs. Referencia DLL - ¿Qué es mejor?
Respuesta
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.
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.
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. –
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.
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.
¿Qué tiene que ver el GAC con las referencias del proyecto frente a referencias dll en un archivo de proyecto de Visual Studio? – Abel
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)
- 1. Referencia del proyecto Vs File Reference?
- 2. Administrar dependencias de ensamblado .NET mediante referencia dll en lugar de referencia de proyecto en VS
- 3. Referencia Web vs. Servicio Referencia
- 4. Pregunta de la referencia del proyecto C#
- 5. conversión implícita: referencia constante vs referencia no const vs no es de referencia
- 6. utilizan versiones diferentes del DLL hace referencia
- 7. Referencia a una DLL desde otra DLL
- 8. ¿Cuál es la mejor herramienta para encontrar a qué DLL se hace referencia a otra DLL VB6?
- 9. puntero vs. Referencia
- 10. Punteros inteligentes vs Referencia
- 11. referencia csc.exe archivo .dll externo
- 12. guión fsx que hace referencia a un dll que hace referencia a muchos dll
- 13. ¿Qué es 'Referencia global JNI'
- 14. Agregar referencia agrega referencia incorrecta
- 15. Actualizar un dll de referencia en un proyecto C# sin volver a compilar el proyecto
- 16. ¿Proyecto de referencia "readonly" en Visual Studio?
- 17. TFSBuild/MSBuild y el Proyecto de referencia frente a referencia del archivo
- 18. Proyecto de referencia en RDLC ReportViewer Informe
- 19. .NET dll de referencia desde otra ubicación
- 20. Publicar DLL no administrada del proyecto al que se hace referencia
- 21. ¿Cuál es la mejor referencia gratuita para CMake?
- 22. Agregar referencia a dll en powershell 2.0
- 23. referencia o devolución: mejor práctica
- 24. Java referencia volátil vs AtomicReference
- 25. ¿Qué es "mejor": DLL COM o DLL estándar con Typelib?
- 26. No se pudieron obtener dependencias para la referencia del proyecto
- 27. ¿Por qué esta referencia es ambigua?
- 28. ¿Qué es un punto de referencia?
- 29. ¿Qué es una referencia directa en C?
- 30. ¿Qué es una "referencia de marco débil"?
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. –
Puede resolver esto agregando los proyectos principales primero a su solución siempre, y no agregue ningún proyecto sin sus proyectos principales (referenciados) –
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