Я внедряю среду 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>
Я пробовал различные методы, в том числе создание пользовательской задачи, в которой я строю файл пользовательского проекта, который импортирует исходный проект, из которого я хочу получить свойства / элементы. Но это не дает мне надежных значений.
Есть ли способ получить группу элементов TargetOutputs проекта MSBuild без фактического выполнения сборки?