2009-10-26 4 views
1

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

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

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

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

ответ

1

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

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

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

+0

Настройка вывода на несуществующий файл, чтобы он всегда выполнял правило сборки, в основном тот же параметр, что и действие предварительной сборки. –

0

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

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

EDIT: Я думаю, что создаю дополнительную папку решений, содержащую «шаблоны» для исходных файлов, и установите для действия сборки значение none, поэтому VS не пытается их скомпилировать. Создайте скрипт prepuild, который скопирует эти файлы в нужное место и предварительно обработает их. Вероятно, вам придется создать несколько фиктивных для создания ссылки в файле проекта, как я уже говорил выше. Таким образом, вы всегда можете получить доступ к исходным файлам из решения, а шаг предварительной подготовки подготовит ваши файлы для вас.

Смежные вопросы