2011-12-09 4 views
7

Possiedo una soluzione con un numero elevato di file .csproj associati.Passa il target personalizzato di msbuild da Soluzione a Progetto

Ogni file .csproj ha un <Target Name="PublishQA">....

La compilazione fallisce quando provo a compilare l'intera soluzione:

> 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] 

Quando costruisco direttamente il progetto .csproj, costruisce bene.

Come si comunica a msbuild di passare il target ai file di progetto ???

risposta

2

Come caso è possibile creare file separato obiettivi che si basa in modo esplicito la soluzione,

<!-- 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> 

Così ora si dovrebbe essere in grado solo definendolo come

msbuild.exe mytargets.targets