Ich denke, Sie können dies tun, indem Sie Build-Ziele angeben, anstatt Build-Ereignisse zu verwenden. Versuchen Sie, ein AfterClean-Ziel zu erstellen, um Ihre generierten Konfigurationsdateien zu löschen, und ein BeforeBuild-Ziel, um sie zu erstellen. Stellen Sie sicher, dass Sie die Dateiabhängigkeit für das BeforeBuild-Ziel einrichten, damit msbuild weiß, dass es den Schritt nur ausführen soll, wenn die Datei nicht vorhanden ist.
Ich habe das noch nicht ausprobiert, aber ich glaube, msbuild führt das Ziel nur aus, wenn die Zieldateien nicht existieren. Wenn Sie neu erstellen, wird der Bereinigungsprozess aufgerufen und damit auch Ihr AfterClean-Ziel.
Sie können mehr über Build-Ziele lesen aquí . Der einzige wirkliche Nachteil bei der Verwendung von Build-Zielen anstelle von Ereignissen ist, dass sie nirgendwo in der VS-Benutzeroberfläche sichtbar sind - Sie finden sie nur, wenn Sie die Projektdatei untersuchen.
Möglicherweise gibt es eine direktere Lösung, die Ereignisse mit einbezieht - sehen Sie sich den Blog des msbuild-Teams an aquí .