创建MSBuild自定义任务以在* compile之前修改C#代码*

我想创建一个自定义的MSBuild任务,在csc.exe编译之前更改我的.cs文件(当然,这不会修改它们 – 我不希望触及实际的源文件)。 我知道PostSharp和.NET的其他AOP框架,它们不是这个特定项目的选项,而且我想学习如何做到这一点。

我究竟需要做些什么才能让它发挥作用?

谢谢理查德

鉴于您的限制,我认为您可以执行以下操作:

  1. 创建自定义任务,在编译之前接受要调整的cs文件列表
  2. 自定义任务会调整接收的文件列表并在磁盘上创建它们
  3. 自定义任务在输出参数上设置已更改文件的列表
  4. 任务的输出将替换原始的cs文件列表
  5. 编译是针对更改的文件完成的。

步骤4确保最终编译的文件是您的自定义任务更改的文件。

您将非常依赖ITaskItem接口来完成工作。