Visual Studio: Копирование файлов после компиляции

Задача: После сборки проекта в отладочном режиме автоматически скопировать файлы *.pdb и *.exe в нужную директорию.
Инструментарий: Visual Studio
Решение: Для решения данной задачи можно воспользоваться несколькими вариантами:

  • Указать Output path в свойствах проекта
  • Настроить Post-Build event

Рассмотрим оба случая:

Откройте свойства проекта (Для этого нужно кликнуть правой кнопкой мыши в Solution Explorer на проекте и выберем пункт меню Properties или выделить проект и выбрать в главном меню пункт Project —  <ProjectName> Properties…)

Для указания Output path нужно открыть вкладку Build и в разделе Output изменить параметр Output path (Рис. 1). В моем случае указан относительный путь который указывает на папку которая расположена на 2 уровня выше от расположения проекта.

Настройка Output Path

Рис. 1. Настройка Output Path

Если Вам не подходит первый вариант — можно воспользоваться вторым вариантом — post-build event’ом.
Откройте свойства проекта и перейдите на вкладку Build Events (Рис.2.). Если вы хотите узнать какие макросы можно использовать при написания post-build event’a — нажмите кнопку Edit Post-build, откроется окно в котором нужно нажать на кнопку Macros>>. В результате в этом же окно отобразится панель в которой будут описаны все макросы, которыми кожно воспользоваться в коде.

post-build event

Рис. 2. post-build event

Названия макроса можно использовать следующим образом $(<MacrosName>), где <MacrosName>  — имя макроса.
В результате у меня получился вот такое скрипт, который копирует собранный файл проекта и файл .pub в указанную папку,  только когда установлена конфигурация — Debug .

if Debug == $(ConfigurationName) (
xcopy "$(TargetPath)" "" /y
xcopy "$(TargetDir)$(TargetName).pdb" "" /y
)

Добавить комментарий