Visual Studio 2010: ¿Cómo hacer cumplir el orden de construcción de los proyectos en una solución?


76

No tuve ningún problema con esto en Visual Studio 2008, pero parece que VS 2010 está teniendo un problema, y ​​apuesto a que probablemente soy yo.

Tengo una solución con un proyecto de sitio web ASP.NET y algunos proyectos de C # (BLL, DAL, pruebas en NUnit). He configurado el proceso de compilación para que el proyecto de prueba ejecute NUnit automáticamente para ejecutar las pruebas. Me gustaría asegurarme de que los proyectos BLL y DAL se compilen antes del proyecto de prueba para que las pruebas se ejecuten con la última versión compilada (sí, sé que podría hacer todo esto en un proyecto, pero elijo no hacerlo ... Por favor, tenga paciencia conmigo :) )

Por lo tanto, configuré las dependencias del proyecto de prueba para incluir los proyectos BLL, DAL y de aplicación web, y el orden de compilación muestra BLL, DAL, aplicación web y luego Pruebas. Sin embargo, noté que el BLL en realidad no se construye cuando construyo el proyecto de prueba.

¿Alguna idea de qué podría ser esto o alguna opción que pueda faltar para forzar la construcción de los otros proyectos cuando construya el proyecto de prueba?

¡Gracias de antemano por cualquier ayuda!



1
Si la configuración de la solución que está creando, ¿se comprueba la compilación para su proyecto BLL?
Nick Craver

Respuestas:


127

Nick Craver mencionó que verificó el Administrador de configuración para asegurarse de tener el proyecto seleccionado para compilar para una configuración determinada.

Sin embargo, para establecer el orden de construcción para varios proyectos en una solución, haga clic con el botón derecho en la solución y seleccione "Orden de construcción del proyecto ..." en el menú contextual.


4
Intenté esto, pero no veo cómo afectar el pedido. La nota dice "Use la pestaña Dependencias para cambiar el orden de construcción", pero la otra pestaña solo tiene casillas de verificación.
AlignedDev

19
El proyecto que desea construir primero se convierte en una dependencia del proyecto que desea construir al final.
Bluebaron

Luego, verifique la otra pestaña para asegurarse de que todo haya funcionado para usted.
Bluebaron

La casilla de verificación "compilar" era correcta para mí. Respondí y acepté la respuesta, pero luego fue eliminada, creo que debido a que dije "gracias". Por lo tanto, marcaré esta respuesta como la respuesta correcta.
SeanKilleen

1
Vea esta respuesta para capturas de pantalla de todo esto.
Evgeni Sergeev

21

Expondré un poco mi comentario aquí, para aquellos que tengan un problema similar.

Abra el administrador de configuración haciendo clic derecho en la solución y seleccionando Administrador de configuración , luego asegúrese de que la compilación esté marcada para el proyecto apropiado (para su configuración actual) en la columna de la derecha aquí:

Administrador de configuración


17

Tal vez, en lugar de establecer el orden manualmente, podría usar las dependencias del proyecto, lo que le permite especificar el orden de construcción indirectamente.

  1. En el Explorador de soluciones, seleccione un proyecto.
  2. En el menú Proyecto, elija Dependencias del proyecto. Se abre el cuadro de diálogo Dependencias del proyecto. La opción Dependencias del proyecto solo está disponible en una solución con más de un proyecto.
  3. En la pestaña Dependencias, seleccione un proyecto del menú desplegable Proyecto.
  4. En el campo Depende de, seleccione la casilla de verificación de cualquier otro proyecto que deba construirse antes que este proyecto.

0

Para corregir el problema que ocurre en mi VS2012, hice lo siguiente:

Haga clic derecho en Propiedades del proyecto -> Propiedades comunes -> Marco y referencias

Ahora encontrará que algunos proyectos que se muestran en la pestaña Dependencia faltan en la lista "Referencias".

Haga clic en "Agregar nueva referencia" para agregar los proyectos que faltan.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.