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