创建MSBuild自定义任务以在编译之前修改C#代码
时间:2020-03-06 14:55:46 来源:igfitidea点击:
我想创建一个自定义MSBuild任务,该任务将在.cs文件由csc.exe编译之前对其进行更改(但是,当然,它们不会在不希望实际源文件被触及的地方进行修改)。我知道PostSharp和.NET的其他AOP框架,它们不是该特定项目的选项,而且我想学习如何做到这一点。
我到底要做什么才能使它正常工作?
谢谢
理查德
解决方案
考虑到限制,我认为我们可以执行以下操作:
- 创建接受cs文件列表以在编译之前进行适应的自定义任务
- 自定义任务会调整接收到的文件列表,并在磁盘上创建它们
- 定制任务在输出参数上设置更改文件的列表
- 任务的输出将替换原始的cs文件列表
- 针对更改的文件完成编译。
步骤4确保最终编译的文件是自定义任务更改的文件。
我们将严重依赖ITaskItem接口来完成工作。