2011-10-19 14 views
5

私はMSBuildフレームワークを実装して、階層として編成された多くのプロジェクトの構築と展開を推進しています。ビルドを実行せずに@(TargetOutputs)を取得する方法

<Target Name="_CoreBuild"> 
    <MSBuild Projects="@(Project)" Targets="Build" Properties="Configuration=$(Configuration)"> 
    <Output TaskParameter="TargetOutputs" ItemName="CompiledAssemblies" /> 
    </MSBuild> 
</Target> 

適切なクリーン/クロバー・ロジックを実装するために、私はビルドが現在のオプションを用いて実施した場合にコンパイルされるファイルの一覧を取得したいと思います。

<Target Name="_CoreClobber" DependsOnTargets="_CoreClean"> 
    <!-- How to retrieve @(CompiledAssemblies) as if we were 
     building @(Project) and retrieving the @(TargetOutputs) item group. 
    --> 
</Target> 

私はからのプロパティ/アイテムを取得する元のプロジェクトをインポートするカスタムプロジェクトファイルを作成したカスタムタスクを作成するなど、さまざまな方法を、試してみました。しかし、それは私に信頼できる価値を与えません。

実際にビルドを実行せずにMSBuildプロジェクトのTargetOutputsアイテムグループを取得する方法はありますか?

答えて

5

気にしないでください。

私はthe following similar questionにつまずいた、と私はGetTargetPathターゲットを使用していた考え出し、そのような:

<Target Name="_CoreBuild"> 
    <MSBuild Projects="@(Project)" Targets="GetTargetPath" Properties="Configuration=$(Configuration)"> 
    <Output TaskParameter="TargetOutputs" ItemName="CompiledAssemblies" /> 
    </MSBuild> 
</Target> 
関連する問題