Я имею в виду VS2005, но я думаю, что это то же самое для VS2008
При определении пользовательского шага сборки необходимо ввести исходные файлы в «Дополнительные зависимости» и сгенерированные файлы в «Вывод» . Это помогает VS решить, нужно ли перестраивать вывод. Это всегда делается, если временная метка любого из входных файлов новее, чем выходные данные.
Если никакие зависимости или выходные данные не определены, то VS не сможет определить, обновлена ли сборка, поэтому VS всегда будет запускать этот этап сборки.