Обратите внимание, что дополнительные файлы includeIntludeDirectories для каждого файла, так как его можно изменить как для отдельных исходных файлов, так и на уровне проекта, а также если он содержит макросы, он может также оценивать по-разному для каждого исходного файла!
Я не знаком с управлением объектами MSBuild через API, но это используется IDE. Независимо от того, просто ли запущен MSBuild.exe, вам нужно выяснить, какие свойства, условия и т. Д., А затем сообщить вам результат. Если все хорошо себя ведет, вы можете создать цель, которая также использует массив элементов ClCompile, и каким-то образом издает метаданные %(AdditionalIncludeDirectories)
, например, записывая их в файл или передавая их другому инструменту. Это то, что используется для генерации параметров /I
для CL, и вы можете получить одинаковые значения.
Если что-то не так хорошо себя ведет в том, что необходимые значения меняются во время процесса детальной сборки, вам нужно будет получить те же предварительные условия, что и обычная цель ClCompile. Или просто переопределите ClCompile с вашим собственным (последнее определение цели используется), поэтому оно, безусловно, находится в том же контексте.
В любом случае, есть места, где файлы сценариев создания могут автоматически включаться во все проекты, поэтому вы можете добавить туда свой материал или использовать аргумент команды (я думаю) в MSBuild для добавления другого Include.
-John