Ahora, después de decir esto, algunos hélice de cabeza va a venir y contradecirme, pero no hay manera de hacer lo que quiere hacer desde Visual Studio. Hay una manera de hacerlo fuera de VS, pero primero, tengo una pregunta:
qué en la tierra que quiere hacer esto? Tal vez intentes ahorrar ciclos de CPU o ahorrar tiempo de compilación, pero si haces lo que estás sugiriendo, de repente te encontrarás en una posición maravillosa para dispararte en el pie. Si tiene una biblioteca 1 que depende de la biblioteca 2 y solo cambia la biblioteca 2, puede pensar que está bien para construir solo la biblioteca modificada, pero uno de estos días hará un cambio en la biblioteca 2 que se romperá biblioteca 1, y sin una compilación de biblioteca 2 no lo captará en la compilación. Entonces, en mi humilde opinión, NO LO HAGAS.
La razón por la que esto no funcionará en VS2005 y 2008 es porque VS usa MSBuild. MSBuild se ejecuta contra los archivos del proyecto, y examinará las referencias del proyecto y creará todos los proyectos referenciados primero, si su fuente ha cambiado, antes de construir el proyecto objetivo. Puede probarlo usted mismo ejecutando MSBuild desde la línea de comando contra un proyecto que no ha cambiado pero con un proyecto referenciado que ha cambiado. Ejemplo:
msbuild ClassLibrary4.csproj
donde ClassLibrary4 no ha cambiado, pero hace referencia a ClassLibrary5, que ha cambiado. MSBuild compilará lib 5 primero, antes de compilar 4, aunque no mencionó 5.
La única forma de evitar estas fallas es utilizar el compilador directamente en lugar de pasar por MSBuild. Feo, feo, pero eso es todo. Básicamente, se verá reducido a volver a implementar MSBuild de alguna forma para hacer lo que desea hacer.
No vale la pena.
Es éste mientras está desarrollando y depuración o como parte de un script de construcción activa? Para el primero, esto es posible con la configuración correcta. Por el segundo, no es factible. – jeremcc
Esto es mientras estoy desarrollando/depurando activamente. –
Si "Genera solución", ¿construye todos los proyectos o solo aquellos que han sido modificados (o ha sido una dependencia)? –