2011-12-09 8 views
7

Tengo una solución con una gran cantidad de archivos .csproj asociados.Pase el objetivo de msbuild personalizado desde la solución al proyecto

Cada archivo .csproj tiene un <Target Name="PublishQA">....

La generación falla cuando intento compilar toda la solución:

> msbuild mysolution.sln /t:PublishQA` 
"c:\myproj.sln" (publishqa target) (1) -> 
    c:\myproj.sln.metaproj : error MSB4057: The target "PublishQA" does not exist in the project. [c:\myproj.sln] 

Cuando construyo el proyecto .csproj directamente, se construye muy bien.

¿Cómo le digo a msbuild que pase el destino a los archivos del proyecto?

Respuesta

2

Como caso se puede crear el archivo de objetivos separada, que se basa explícitamente su solución,

<!-- mytargets.targets file --> 
<Project ToolsVersion="4.0" 
     xmlns="http://schemas.microsoft.com/developer/msbuild/2003" 
     DefaultTargets="MyTargets" 
     InitialTargets="MyTargets"> 

    <Target Name="MyTargets"> 
     <MSBuild Projects="MySolution.sln" /> 
    </Target> 

</Project> 

Así que ahora usted debería ser capaz simplemente llamándolo como

msbuild.exe mytargets.targets

Cuestiones relacionadas