Задача автоматизации в Visual Studios

Я работаю над решением c++, которое содержит 20 проектов. Мой первый проект строится, и я запускаю его как событие предварительной сборки для остальной части проектов. Теперь этот исполняемый файл фактически создает некоторые c++ файлы, которые должны быть добавлены ко всем другим проектам, которые еще предстоит скомпилировать. Как мне это сделать? (Использование VS2008)

Вот несколько решений, которые я думал.

Решение 1:

Пусть exe обновит файл vcproj для всех остальных проектов. Но в этом случае, когда проект включен в VS, он создает некоторое всплывающее окно reload, которое я не хочу. Так что есть способ подавить это всплывающее окно и просто сохранить изменения.

Решение 2:

Визуальная автоматизация:

Я просто прошел через API автоматизации.

Методы решения и интерфейса проекта помогут добавить новый файл. Но не создаст ли новый всплывающий экран, как предыдущий? Могу ли я использовать MSbuild здесь?

1 ответ

Вы можете просто использовать Generated_*.cpp (или аналогичный шаблон) в качестве названия элементов для соответствующей группы в проекте. Затем, когда проект будет создан, он подберет все соответствующие файлы, даже когда они будут созданы во время шагов предварительной сборки.

Если количество файлов невелико, вы можете просто добавить их в проект напрямую (что, я считаю, в порядке, даже если они отсутствуют до сборки).

Обратите внимание, что может быть хорошей идеей генерировать файлы в отдельной папке (например, obj\....), поэтому вы не сталкиваетесь с ситуациями, когда кто-то ошибочно проверяет созданные файлы.

licensed under cc by-sa 3.0 with attribution.