2011-10-19 8 views
5

Wdrażam framework MSBuild, aby sterować budowaniem i wdrażaniem wielu projektów zorganizowanych jako hierarchia.Jak odzyskać @ (TargetOutputs) bez wykonywania kompilacji

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

W celu wykonania prawidłowego logikę Clean/sprać, chciałbym, aby pobrać listę plików, które zostaną skompilowane, jeśli build przeprowadzono z aktualnymi opcji.

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

Próbowałem różnych metod, w tym tworzenia zadania niestandardowego, w którym buduję własny plik projektu, który importuje oryginalny projekt Chcę odzyskać Właściwości/pozycji z. Ale to nie daje mi wiarygodnych wartości.

Czy istnieje sposób na odzyskanie grupy elementów docelowych obiektu projektu MSBuild bez faktycznego wykonania kompilacji?

Odpowiedz

5

Nieważne.

natknąłem się the following similar question i zorientowali musiałem użyć celu GetTargetPath, tak:

<Target Name="_CoreBuild"> 
    <MSBuild Projects="@(Project)" Targets="GetTargetPath" Properties="Configuration=$(Configuration)"> 
    <Output TaskParameter="TargetOutputs" ItemName="CompiledAssemblies" /> 
    </MSBuild> 
</Target> 
Powiązane problemy