Вы можете довольно легко узнать, используя Exec.
Чтобы проверить, существует ли ВСЕ набор файлов: команда DOS FOR / D принимает список файлов, разделенных точкой с запятой, то есть уплощенный массив элементов.
<!-- All exist -->
<Exec
Command="for /D %%i in (@(MyFiles)) do if not exist %%i exit 1"
IgnoreExitCode="true">
<Output TaskParameter="ExitCode" PropertyName="ExistExitCode"/>
</Exec>
Чтобы проверить, существует ли ЛЮБОЙ набор файлов: команда DOS DIR принимает список файлов через точку с запятой. Он устанавливает% ERRORLEVEL% в 0, если находит какие-либо файлы в списке, ненулевое значение, если не находит ни одного. (Это более простой случай, но он не отвечает на исходный вопрос ...)
<!-- Any exists -->
<Exec Command="dir /B @(MyFiles)" IgnoreExitCode="true">
<Output TaskParameter="ExitCode" PropertyName="DirExitCode"/>
</Exec>
Тогда, скорее всего, вы захотите определить логическое свойство на основе вывода.
РЕДАКТИРОВАТЬ : Кстати, это запах кода. Обычно, когда вы обнаруживаете, что хотите это сделать, это указывает на то, что вы должны установить свойство Outputs цели, чтобы оно зацикливалось на элементах.