8

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

我必须做些什么才能让它发挥作用?

谢谢理查德

4

1 回答 1

6

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

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

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

您将严重依赖ITaskItem接口来完成这项工作。

于 2008-09-30T15:46:41.107 回答