2012-06-29 84 views
21

Tengo una solución simple en Visual Studio 2010 que contiene algunas bibliotecas estáticas, algunas DLL y un archivo ejecutable.¿Cuál es la diferencia entre las referencias de proyecto y las dependencias de proyecto?

Algunas bibliotecas dependen entre sí (por ejemplo, la DLL necesita dos proyectos lib estáticas para ser construidos antes de la construcción de la DLL propio), y parece que hay dos vías para lograrlo:

1) Si hago clic derecho en la solución, puedo seleccionar "Dependencias del proyecto ..." y establecer la orden de construcción

2) Puedo hacer clic derecho en el proyecto DLL y seleccionar Propiedades-> Marco y referencias y luego agregar una nueva referencia.

¿Cuál es la diferencia entre # 1 y # 2? ¿Cuál es la mejor forma de expresar una dependencia de compilación entre dos proyectos en Visual Studio 2010?

+2

recomiendo utilizar Agregar referencia de proyecto a proyecto y dejar Visual Studio descubre el orden de compilación. Por lo general, no debería haber necesidad de editar manualmente el orden de compilación. – FrankE

+0

Sí, mis colegas me dijeron lo mismo. Solo tengo curiosidad acerca de la diferencia – Emiliano

Respuesta

21

La única diferencia entre una "Definición de referencia de proyecto" y una "Definición de dependencia de proyecto" es el metadato que define la inclusión/exclusión del ensamblaje de salida en/del comando de enlace de proyecto principal.

En Visual Studio 2010-and-forward, Microsoft quiere que empiece a utilizar el cuadro de diálogo "Framework and References" y deje de utilizar el diálogo "Dependencias del proyecto" (por ahora, el diálogo "Project Dependencies" permanece, probablemente será eliminado en el futuro).

Aquí hay una entrada de blog que habla de esto, y otros "Proyecto cambios de configuración con VS2010" por uno de los desarrolladores de Visual Studio:

http://blogs.msdn.com/b/vcblog/archive/2010/02/16/project-settings-changes-with-vs2010.aspx

+2

Ocasionalmente encuentro un error en VS2013 donde una dependencia de proyecto no crea una dependencia de compilación. Este parece ser el caso para un proyecto que se excluye de la construcción en Release pero no en Debug. Es inconsistente y agravante, pero agregar manualmente la dependencia de compilación lo corrige. – Wheezil

+0

Para Visual Studio 2015, las referencias ya no están en la hoja de propiedades, pero ahora están debajo del proyecto en el árbol en el Explorador de proyectos. – MicroVirus

Cuestiones relacionadas