2011-03-01 11 views
5

Tengo varios proyectos Visual Studio 2010 C#. Me gustaría que todos tengan el mismo evento de compilación posterior. Básicamente quiero que copien su salida en algún lado. Creo que puedo hacer esto usando una declaración de importación < > en cada archivo csproj, pero parece que no puedo entender las propiedades/objetivos y los que necesito en el archivo importado. ¿Tienes alguna sugerencia?¿Cómo puedo crear un evento de compilación posterior común utilizado por varios proyectos de csproj?

EDITAR: He intentado lo siguiente pero no puedo hacerlo funcionar. Esto es lo que se ve el archivo Imports.props como:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Target Name="AfterBuild"> 
     <Message Text="Here I come to save the day!" /> 
    </Target> 
</Project> 

que luego incluirlo en los archivos csproj:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="Imports.props" /> 
    ... 

También he intentado esto como Imports.props:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
     <PostBuildEvent>echo Here I come to save the day!</PostBuildEvent> 
    </PropertyGroup> 
</Project> 

Respuesta

4

Asegúrese de que la importación de archivos de sus objetivos después de las Microsoft.Common.targets importan, como el archivo define un objetivo AfterBuild vacío, lo que anularía la definición en su archivo de objetivos.

+0

Bingo. Tuve la importación en la parte superior. ¡Gracias! – Charles

0

Pude compartir un script de construcción a través de las hojas de propiedades, escribiéndolo como una macro en la hoja de propiedades heredada. Luego llama al macro en cualquiera de los proyectos que los necesitan.

macros se encuentran bajo (VS2005): Común Properties-> Macros de usuario

Recuerde, usted puede poner macros dentro de otras macros, siempre que el pedido es correcto.

Cuestiones relacionadas