Pregunta

Digamos que tengo dos proyectos A y B. A depende de B. Puedo especificar esto de dos maneras:

  • Incluir A y B en la misma solución y especifique B como una dependencia de proyecto para A. Esto se muestra en proyecto msbuild de A como un nodo "ProjectReference".
  • incluir una referencia a DLL compilada de la B como dependencia para A. Esto se muestra en proyecto msbuild de A como una "referencia" nodo

Mi pregunta es, una vez que he construir el conjunto de A, hay una diferencia en el resultado final entre estos dos métodos.

He intentado crear un par de proyectos simples que modelo de esta relación y trató una comparación - pero diferentes herramientas de comparación me dicen cosas diferentes. A la espera de escribir algo que compara estos archivos byte a byte, me preguntaba si la gente sabía nada de esto. Específicamente, ¿habrá alguna diferencia en el comportamiento de la asamblea construida si utilizo referencia DLL en lugar de una referencia de proyecto.

¿Fue útil?

Solución

Si las fuentes de proyecto B no han cambiado entre dos obra del proyecto A, no habrá diferencia en el comportamiento de la salida del proyecto A. Sin embargo, si las fuentes de proyecto B han cambiado, refiriéndose a ella como un proyecto de proyecto A hará que el proyecto B a ser reconstruido así. Esta diferencia es lo que determina la elección de la forma de proyecto de referencia B del proyecto A:

  • Si usted es dueño de la fuente tanto el proyecto B y el proyecto A, y que está fuertemente acoplado, o si ambos están en desarrollo y el proyecto B activas sufre a menudo se rompen los cambios de su interfaz pública, desea proyecto de referencia B como proyecto. Esto garantizaría que el proyecto A siempre utiliza en su construcción la salida de información más actualizada de proyecto B.

  • Si el proyecto B es la dependencia externa no se desarrollan cada uno, porque no tienen las fuentes a, o si se ha enviado ya y que no se puede enviar modificada versión con el proyecto A, desea para hacer referencia a la salida de pre-construido el proyecto B, para asegurarse de que están desarrollando y probando con la misma versión del proyecto B, que es más probable que sea en equipos de los usuarios.

Otros consejos

Adición como referencia del proyecto solo tiene la ventaja de que el montaje "B" se construye de forma automática si es necesario.

Una vez que el montaje "A" se construye, no hay ninguna diferencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top