【问题标题】:Create MSBuild custom task to modify C# code *before* compile创建 MSBuild 自定义任务以修改 C# 代码 *before* 编译
【发布时间】:2010-09-14 07:02:58
【问题描述】:
我想创建一个自定义 MSBuild 任务,在 csc.exe 编译我的 .cs 文件之前更改它们(但是,当然,这不会修改它们 - 我不希望触及实际的源文件) .我知道 PostSharp 和其他适用于 .NET 的 AOP 框架,它们不是这个特定项目的选项,而且我想学习如何做到这一点。
我必须做些什么才能让它发挥作用?
谢谢
理查德
【问题讨论】:
标签:
c#
.net
vb.net
msbuild
build-process
【解决方案1】:
鉴于您的限制,我认为您可以执行以下操作:
- 创建自定义任务,接受要在编译前调整的 cs 文件列表
- 自定义任务调整接收到的文件列表并在磁盘上创建它们
- 自定义任务在输出参数上设置更改文件列表
- 任务的输出会替换原来的cs文件列表
- 针对更改的文件进行编译。
第 4 步确保最终编译的文件是由您的自定义任务更改的文件。
您将严重依赖ITaskItem 接口来完成这项工作。