I'm trying to create a MSBuild target to post-process assemblies through a custom executable (e.g. convert.exe
).
The target receives a semi-colon ;
separated list of assemblies as Input
and I would like to batch Exec
.
<Target Name="_CollectAssemblies" DependsOnTargets="ResolveReferences">
<ItemGroup>
<_Assemblies Include="@(ReferencePath);@(CopyLocalFiles);@(ResolvedDependencyFiles);@(ReferenceDependencyPaths);$(TargetPath)" />
</ItemGroup>
</Target>
<Target Name="_ConvertFiles" DependsOnTargets="_CollectAssemblies"
Inputs="@(_Assemblies)">
<Exec Command="echo @(_Assemblies)" />
<!--<Exec Command="$(MSBuildThisFileDirectory)convert.exe @(_Assemblies)" />-->
</Target>
The Exec
command outputs, echo Assembly1.dll;Assembly2.dll;Assembly3.dll;
.
How do I transform the Input
so that I can process each assembly individually?
e.g.
echo Assembly1.dll
echo Assembly2.dll
echo Assembly3.dll
So far I have tried:
<Target Name="_ConvertFiles" DependsOnTargets="_CollectAssemblies"
Inputs="@(_Assemblies)">
<ItemGroup>
<_SplitAssemblies Include="$(_Assemblies.Split(';'))" />
</ItemGroup>
<Exec Command="echo %(_SplitAssemblies.Identity)" />
</Target>