Las hojas de propiedades pueden resolver este y algunos otros problemas relacionados con la propiedad con facilidad.
En resumen, todas las propiedades de un proyecto son solo nodos en un documento XML, y los nodos del grupo de propiedades pueden tener un atributo condition
. Son fáciles de cambiar en cualquier editor de texto, pero una característica menos conocida es la capacidad de importar otros documentos XML, que pueden proporcionar configuraciones (para todos menos para algunos proyectos específicos).
This blog post tiene un buen tutorial sobre el uso de hojas de proyectos, y algo más de información en this question. Puede crearlos en Visual Studio, editarlos (incluida la copia de la configuración existente de su proyecto) y luego adjuntarlos a su proyecto con el administrador de la propiedad (no la ventana de propiedades).
Los grupos en su hoja de propiedades usan la misma sintaxis que los ajustes normales, y se pueden configurar para todas las configuraciones o filtrar para aplicar solo en algunos. También se pueden filtrar por nombre del proyecto y algunas otras cosas, usando el sistema de condiciones y variables de VS. Por ejemplo, yo uso:
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<Optimization>Disabled</Optimization>
<EnablePREfast>true</EnablePREfast>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
para algunos de mis construcciones, para aplicar los mismos ajustes a todos los proyectos (full file here).
Uno de los usos más convenientes es proporcionar el directorio de compilación en el archivo, por lo que todos sus proyectos se compilan uniformemente en el mismo directorio (asegúrese de usar el nombre del proyecto para la salida).