5

私は MSBuild フレームワークを実装して、階層として編成された多くのプロジェクトの構築と展開を推進しています。

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

適切な Clean/Clobber ロジックを実装するために、現在のオプションでビルドが実行された場合にコンパイルされるファイルのリストを取得したいと考えています。

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

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

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

4

1 に答える 1

6

どうでも。

次の同様の質問に出くわし、次のようにGetTargetPathターゲットを使用する必要があると考えました。

<Target Name="_CoreBuild">
  <MSBuild Projects="@(Project)" Targets="GetTargetPath" Properties="Configuration=$(Configuration)">
    <Output TaskParameter="TargetOutputs" ItemName="CompiledAssemblies" />
  </MSBuild>
</Target>
于 2011-10-20T14:59:40.823 に答える