VIsual студия перед сборкой - PullRequest
1 голос
/ 27 октября 2009

Мне нужно собрать некоторые исходные файлы на C, используя Visual Studio (в настоящее время использующий VS2008), но есть сценарий предварительной сборки, который необходимо запустить, чтобы файлы могли компилироваться.

Итак, этот сценарий предварительной сборки должен изменить исходные файлы, и здесь возникает проблема: как мне использовать сценарий предварительной сборки, который изменяет файлы src.

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

Так, каков наилучший способ запустить такой сценарий перед сборкой?

Ответы [ 2 ]

1 голос
/ 27 октября 2009

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

  • Установите событие пост-сборки фиктивного проекта для выполнения манипуляции, или
  • Создайте пользовательское правило сборки для файла cpp (или другого фиктивного файла в проекте) для запуска сценария

Я не уверен, какой из этих двух будет делать то, что вам нужно с точки зрения того, нужно ли им запускаться каждый раз, когда вы строите, или только когда вы строите первый раз. Если вы используете 2-й подход, вы можете настроить вывод для пользовательского правила сборки как файл, который не существует, и это заставит правило сборки выполняться каждый раз. Поскольку фиктивный проект является зависимостью от основного проекта, он будет проходить через процесс создания его каждый раз, когда вы создаете решение.

0 голосов
/ 27 октября 2009

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

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

РЕДАКТИРОВАТЬ: Я думаю, что я создал бы дополнительную папку решения, которая содержит «шаблоны» для исходных файлов и установил бы действие сборки ничего, поэтому VS не пытается их компилировать. Создайте сценарий предварительной сборки, который копирует эти файлы в нужное место и предварительно обрабатывает их. Возможно, вам придется создать несколько фиктивных, чтобы создать ссылку в файле проекта, как я уже говорил выше. Таким образом, вы всегда можете получить доступ к исходным файлам из решения, и на этапе предварительной подготовки ваши файлы будут подготовлены для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...