Лучше всего создать небольшой пользовательский исполняемый файл (вы даже можете скомпилировать его как этап сборки), который опрашивает искомый файл.Затем вы используете цель PreBuild или пользовательскую цель на этапе предварительной сборки, чтобы убедиться, что файл существует.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="WaitOnFTP">
<Exec Command="MyFTPWaiter.exe"/>
</Target>
</Project>
Другие, более ориентированные на MSBuild предложения - переделать этот exe-файл как пользовательскую задачу или дажевстроенная задача в MSBuild 4.0.
FWIW, я столкнулся с аналогичным решением, выполненным партнером, который не хотел, чтобы большие двоичные файлы использовались интеграционными тестами в управлении версиями, и ему требовалось использовать пользовательский загрузчик всборка для получения файлов из общего ресурса SMB.Это работало достаточно хорошо.
Пользовательские задачи
Встроенные задачи