Créer une tâche personnalisée MSBuild pour modifier le code C # * avant * la compilation

Je souhaite créer une tâche MSBuild personnalisée qui modifie mes fichiers .cs avant qu’ils ne soient compilés par csc.exe (mais, bien sûr, cela ne les modifie pas sur place – je ne veux pas que les fichiers source soient modifiés). Je connais PostSharp et d’autres frameworks AOP pour .NET et ils ne sont pas une option pour ce projet particulier. De plus, j’aimerais apprendre à le faire.

Que dois-je faire précisément pour que cela fonctionne?

Merci richard

Compte tenu de vos ressortingctions, je pense que vous pouvez faire ce qui suit:

  1. Créer une tâche personnalisée qui accepte la liste des fichiers cs à adapter avant la compilation
  2. La tâche personnalisée adapte la liste des fichiers reçus et les crée sur le disque.
  3. La tâche personnalisée définit la liste des fichiers modifiés sur le paramètre de sortie.
  4. La sortie de la tâche remplacerait la liste des fichiers cs d’origine
  5. La compilation est faite sur les fichiers modifiés.

L’étape 4 garantit que les fichiers éventuellement compilés sont ceux qui ont été modifiés par votre tâche personnalisée.

Vous utiliserez beaucoup l’interface ITaskItem pour le travail.