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

时间:2008-09-30 15:38:17

标签: c# .net vb.net msbuild build-process

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

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

由于 理查德

1 个答案:

答案 0 :(得分:5)

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

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

    您将非常依赖ITaskItem界面来完成工作。