Penso che sia possibile farlo specificando gli obiettivi di compilazione anziché utilizzare eventi di build. Prova a creare un target AfterClean per eliminare i file di configurazione generati e una destinazione BeforeBuild per crearli. Assicurati di impostare la dipendenza del file per la destinazione di BeforeBuild, quindi msbuild sa che dovrebbe essere eseguito solo se il file non è presente.
Non ho ancora provato questo, ma credo che msbuild eseguirà il target solo se i file di destinazione non esistono. Quando si ricostruisce, verrà invocato il processo di pulizia e, a sua volta, il target AfterClean.
Ulteriori informazioni sugli obiettivi di costruzione here. L'unico vero svantaggio nell'usare obiettivi di compilazione invece di eventi è che non sono visibili da nessuna parte nell'interfaccia utente di VS. Li troverai solo se controlli il file di progetto.
Potrebbe esserci una soluzione più diretta che coinvolge gli eventi: dare un'occhiata al blog del team di msbuild here.
fonte
2010-04-22 16:38:45