Ответ jheriko интересен, поскольку он позволяет запускать пользовательский инструмент, а затем генерировать зависимости для сборки. Но это не очень удобно, потому что тогда вы теряете все возможности использовать набор инструментов "custom build tools", в котором вы можете
- выбирайте всегда компилировать файлы с некоторым точным расширением
- вручную пропустить пользовательскую сборку для определенного файла в конкретной конфигурации проекта (и визуализировать это решение)
Нет способа (или, по крайней мере, я его не нашел) «иметь все». Единственный способ, который я нашел, - заставить пользовательский инструмент сборки возвращать ненулевое число, когда файлы были обновлены, с сообщением пользователю, объясняющим, что это не ошибка, и приглашающим его запустить сборку снова. В следующий раз пользовательский инструмент сборки запускается снова (не оптимально, но инструмент, который я использую, довольно быстро), но не изменяет новый файл, и процесс сборки продолжается с использованием допустимых зависимостей.
Примечание: описанный выше подход не работает с Incredibuild, который, похоже, игнорирует порядок сборки проекта.