2012-02-22 11 views
13

Tengo una serie de propiedades que necesito establecer en ~ 15 proyectos. ¿Hay alguna forma de poner estas propiedades en un solo archivo y hacer que todos los archivos del proyecto hagan referencia al archivo con algún tipo de directiva de importación en lugar de duplicar las propiedades en cada archivo de proyecto?Elementos de PropertyGroup reutilizables en un archivo csproj

EDITAR: Para aclarar, estoy hablando de <PropertyGroup> elementos dentro del archivo csproj. Todos los proyectos necesitan la misma serie de configuraciones <PropertyGroup>. Estos elementos establecen propiedades como DebugSymbols o DefineDebug, y no se utilizan para hacer referencia a los archivos fuente.

Respuesta

18

El elemento <Import> se puede utilizar para esto, similar a la forma personalizada objetivos se utilizan archivos.

El archivo reutilizable debería tener este aspecto:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
     <!-- Properties go here --> 
    </PropertyGroup> 
</Project> 

Tenga en cuenta que tenga el elemento raíz Project con la declaración xmlns se requiere - VS no se carga un proyecto hace referencia a este archivo sin ella.

He guardado la configuración de mis propiedades en mi directorio de soluciones como ProjectBuildProperties.targets.

Para incluir el archivo en otros proyectos, he añadido esto a los archivos csproj:

<Import Project="$(SolutionDir)ProjectBuildProperties.targets"/> 

y funciona!

2

Puede crear un archivo compartido de MSBuild que todos los proyectos puedan importar.

Este post discute esta solución y demuestran que here

Cuestiones relacionadas