2010-04-22 1 views
5

В Visual Studio 2008 мы запускаем событие post build, которое вызывает NANT и, в свою очередь, создает наши файлы конфигурации.Visual Studio 2008 Post Build event - работает только при перестройке

например.

if $(SolutionDir) == . GOTO end 
nant -buildfile:$(SolutionDir)default.build create..web.config 

Есть ли способ запустить это только на ReBuild?

ответ

3

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

Я на самом деле не пробовал это, но я верю, что msbuild будет запускать цель, только если целевые файлы не существуют. Когда вы перестраиваете, процесс очистки будет вызываться, а в свою очередь - цель AfterClean.

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

Возможно, существует более прямое решение, связанное с событиями - посмотрите блог команды msbuild here.