Как определить пользовательские действия для Pre-build и Post-build Event Command Line в Visual Studio
By: Date: 19.01.2012 Categories: !RUS,TFS

Основная статья здесь
How to: Specify Custom Actions That Run Pre-build or Post-build.

А вот здесь есть список макросов
Pre-build Event / Post-build Event Command Line Dialog Box (Database Edition)

Короче. В свойствах проекта, на закладке Build Events есть пара полей для ввода команд, которые будут выполнены ДО или ПОСЛЕ сборки проекта. И еще поле Run the post-build event, в котором задаётся условие выполнения команд ПОСЛЕ сборки (On successful build – при удачной сборке или Always — всегда).

Редактировать текст можно прямо в этих полях. Но если нажать кнопку Edit Pre-build или Edit Post-build появиться дополнительное окно в котором есть кнопка Macros. Если нажать эту кнопку, появиться список макро подстановок и их реальных значений. Если выбрать конкретный макрос и нажать Insert — макрос вставиться в текст.

Нужно учесть что значения макроподстановок для путей заканчиваются слэшем ().

image

Пример написания команд с условиями (if):

1) С помощью GOTO

if $(ConfigurationName) == Debug goto :debug

:release
signtool.exe ....
xcopy ...

goto :exit

:debug
' debug items in here

:exit

2) Без GOTO

if $(ConfigurationName) == Debug (
  copy "$(TargetDir)myapp.dll" "c:deliverybin" /y
  copy "$(TargetDir)myapp.dll.config" "c:deliverybin" /y
) ELSE (
  echo "why, Microsoft, why".
)