Je pense que vous pouvez le faire en spécifiant des cibles de construction plutôt que d'utiliser des événements de construction. Essayez de créer une cible AfterClean pour supprimer les fichiers de configuration générés et une cible BeforeBuild pour les créer. Assurez-vous de configurer la dépendance du fichier pour la cible BeforeBuild, de sorte que msbuild sache qu'il ne doit exécuter l'étape que si le fichier n'est pas présent.
Je n'ai pas réellement essayé ceci, mais je crois que msbuild exécutera seulement la cible si les fichiers cibles n'existent pas. Lorsque vous reconstruisez, le processus de nettoyage sera appelé, et à votre tour votre cible AfterClean.
Vous pouvez en savoir plus sur les cibles de construction here. Le seul inconvénient réel de l'utilisation des cibles de construction au lieu des événements est qu'elles ne sont visibles nulle part dans l'interface utilisateur de VS - vous ne les trouverez que si vous inspectez le fichier de projet.
Il existe peut-être une solution plus directe impliquant des événements - consultez le blog de l'équipe msbuild here.