2011-12-09 66 views
7

我有一個解決方案,其中包含大量關聯的.csproj文件。將自定義msbuild目標從解決方案傳遞到項目

每個.csproj文件都有一個<Target Name="PublishQA">...

構建,當我嘗試編譯整個解決方案失敗:

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

當我直接建.csproj項目,它建立就好了。

如何告訴msbuild將目標傳遞給項目文件?

回答

2

正如你可以創建單獨的目標文件,其中明確建立您的解決方案的情況下,

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

所以,現在你應該可以只調用它像

msbuild.exe mytargets.targets

相關問題