Есть два способа сделать это, оба являются формами "пакетирования"
Вы можете группировать цель и выполнять Exec и другие операции,
<Target Name="ExecMany"
Outputs="%(CachedTables.Identity)">
<Exec
Command="sqlcmd -S ... TableName=%22%(CachedTables.Identity)%22 -i ..."
/>
<SomeOtherTask ThatUses="%(CachedTables.Identity)" />
</Target>
Другой способ заключается виспользуйте пакетную задачу, только для задачи Exec.Это похоже,
<Target Name="ExecMany">
<Exec
Command="sqlcmd -S ... TableName=%22%(CachedTables.Identity)%22 -i ..."
/>
<SomeOtherTask ThatUses="%(CachedTables.Identity)" />
</Target>
Разница в том, как они будут работать.Во-первых, поскольку пакетирование предназначено для всей цели (достигается с помощью атрибута Outputs), задача Exec, затем SomeOtherTask будет выполняться для каждого элемента в группе.Другими словами,
Exec with "account"
SomeOtherTask with "account"
Exec with "services"
SomeOtherTask with "services"
...
Вторая опция, объединяющая каждую задачу в отдельности, создаст следующую последовательность:
Exec with "account"
Exec with "services"
...
SomeOtherTask with "account"
SomeOtherTask with "services"
...