在VS 2012中编译前修改c#代码

本文关键字:修改 代码 编译 VS 2012 | 更新日期: 2023-09-27 18:18:15

我有一个类似的问题,就像这里的问题:创建MSBuild自定义任务来修改c#代码*之前*编译

我需要在编译前更改。cs文件。当然,由于版本控制,我不希望它们被修改。我已经发现,自定义MSBuild任务可能是完成这项工作的正确选择。

摘自上述问题的答案:

创建自定义任务,该任务接受要在编译之前调整的cs文件列表

  • 自定义任务调整接收到的文件列表并在磁盘
  • 上创建它们
  • 自定义任务在输出参数
  • 上设置更改的文件列表
  • 任务的输出将替换原来的cs文件列表
  • 对修改后的文件进行编译。

解决方案似乎清晰而精细,但我无法找到的(全部用于Visual Studio 2012):

  • 任务应该得到什么目标?BeforeCompile还是太晚了?
  • 我怎么能给"文件编译"作为参数进入任务?它是如何定义的?
  • 如何准确定义输出以便编译使用修改后的文件?

谢谢,如果有人能帮我举个例子就太好了:-)

在VS 2012中编译前修改c#代码

我的一个客户要求我在编译之前替换一些AssemblyInfo.cs文件中的一些版本和版权信息。我正在通过带有RegEx的FileUpdate任务做到这一点。这当然会导致文件被修改。但这完全没有问题,只需使用Exec任务并在构建作业结束时运行"svn revert":

    <Target Name="RevertModifications">
    <Message Text="reverting modifications..." />
    <Exec Command="svn revert -R $(RootDir)"/>
</Target>

也许这有帮助?