创建MSBuild自定义任务以在* compile之前修改C#代码*
我想创建一个自定义的MSBuild任务,在csc.exe编译之前更改我的.cs文件(当然,这不会修改它们 – 我不希望触及实际的源文件)。 我知道PostSharp和.NET的其他AOP框架,它们不是这个特定项目的选项,而且我想学习如何做到这一点。
我究竟需要做些什么才能让它发挥作用?
谢谢理查德
鉴于您的限制,我认为您可以执行以下操作:
- 创建自定义任务,在编译之前接受要调整的cs文件列表
- 自定义任务会调整接收的文件列表并在磁盘上创建它们
- 自定义任务在输出参数上设置已更改文件的列表
- 任务的输出将替换原始的cs文件列表
- 编译是针对更改的文件完成的。
步骤4确保最终编译的文件是您的自定义任务更改的文件。
您将非常依赖ITaskItem接口来完成工作。