Визуальная студия пользовательской сборки для создания заголовков - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть проект с заголовками, который обычно генерируется при необходимости с интерфейсом командной строки. Но я хочу добавить этот этап создания в Visual Studio 2015 (набор инструментов v141, c ++) в качестве пользовательского этапа сборки. Так что я сделал это, и это на самом деле работает, но генерирует их до поздна. Действительно, если файлы еще не существуют, он не может создать проект с ошибкой «невозможно включить файл myHeader.h».

Я добавил пользовательский шаг сборки, добавив свойства проекта -> Пользовательский шаг сборки -> общие :

  • Командная строка: команда для создания файла заголовка (работает)
  • Выходы: $ (ProjectDir) генерируемый заголовок;% (Выходы)
  • Выполнить до: PreBuildEvent

Ouputs фактически не требуется, так как командная строка генерирует файлы и автоматически помещает их в правую папку , но это не работает, если я не указываю выходную папку.

Выполнить до может быть, где моя проблема. Но я не знаю, какой вариант добавить. этот покажется хорошим.

EDIT Что-то странное в том, что иногда удается создать его перед сборкой, но если я удаляю их и собираю заново. Они больше не генерируются, и проект не создается.

EDIT2 на самом деле он работает только в том случае, если я изменяю свойства проекта, поскольку он заставляет восстановить все требования. В противном случае, если я собираюсь как обычно, он пропускает пользовательский шаг, потому что Visual Studio считает его актуальным.

1 Ответ

0 голосов
/ 06 апреля 2020

Кажется, я решил это. Я сделал пользовательский шаг сборки, чтобы сгенерировать мои файлы, но там говорится здесь

Шаг пользовательской сборки

Включены пользовательские шаги сборки как часть интеллекта, который управляет инкрементальной сборкой, используя свойства «Дополнительные зависимости» и «Выходы». Если файл в вашем свойстве «Дополнительные зависимости» будет затронут, то ваш шаг пользовательской сборки будет считаться устаревшим и будет построен с вашей следующей сборкой

События сборки

Ничего особо не изменилось со времен VS2008. Эти три события (Pre-build, Pre-link и Post-build) запускаются в ходе обычной сборки и позволяют выполнять произвольные команды уровня проекта.

Таким образом, я создаю Build событие и мои файлы теперь генерируются в любое время и перед проверкой включаемых файлов.

...