2011-10-19 12 views
5

Sto attuare un quadro di MSBuild per guidare la costruzione e l'implementazione di numerosi progetti organizzati come una gerarchia.Come recuperare @ (TargetOutputs) senza eseguire una build

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

Al fine di attuare una corretta logica Clean/Clobber, vorrei recuperare l'elenco dei file che verrebbero compilati se una build sono state eseguite con le opzioni attuali.

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

Ho provato vari metodi, tra cui la creazione di un'attività personalizzata, in cui ho costruito un file di progetto personalizzato che importa il progetto originale che voglio recuperare le proprietà/elementi da. Ma questo non mi dà valori affidabili.

C'è un modo per recuperare TargetOutputs gruppo di articoli di un progetto MSBuild senza effettivamente eseguire una generazione?

risposta

5

Mai mente.

mi sono imbattuto su the following similar question, e figurato ho dovuto usare il target GetTargetPath, in questo modo:

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