如何以编程方式在Project的.targets文件中启用和执行任务

时间:2014-06-04 19:00:46

标签: delphi msbuild c++builder

我的(Delphi)项目中有自定义的.targets文件(自2009年以来,它就是RAD Studio支持的MSBuild文件)。

.targets 文件正常运行 - 我使用this文章将其添加到我的项目中。 当我右键单击它并选择启用时,然后执行Targets->编译其中的相关任务并且一切正常。

.targets file right click menu

问题是如何实现自动化。我想在每次构建项目时执行此任务(例如Build)(在IDE中编译或构建操作:F9或Ctrl + F9)。

我可以在AfterCompile()方法中访问IOTAProject,我也可以将.targets文件作为IOTAModuleInfo获取,但我发现无法访问.targets右键菜单。

  TIDENotifierTemplate = Class(TNotifierObject, IOTANotifier, IOTAIDENotifier50, IOTAIDENotifier80, IOTAIDENotifier)
  Public
    // IOTANotifier
    Procedure AfterSave;
    Procedure BeforeSave;
    Procedure Destroyed;
    Procedure Modified;
    // IOTAIDENotifier
    Procedure FileNotification(NotifyCode: TOTAFileNotification; Const FileName: String; Var Cancel: Boolean);
    Procedure BeforeCompile(Const Project: IOTAProject; Var Cancel: Boolean); Overload;
    Procedure AfterCompile(Succeeded: Boolean); Overload;
    // IOTAIDENotifier50
    Procedure BeforeCompile(Const Project: IOTAProject; IsCodeInsight: Boolean; Var Cancel: Boolean); Overload;
    Procedure AfterCompile(Succeeded: Boolean; IsCodeInsight: Boolean);  Overload;
    Procedure AfterCompile(Const Project: IOTAProject; Succeeded: Boolean; IsCodeInsight: Boolean); Overload;
  End;

我可以使用Open Tools API或任何其他方式实现此目的吗?

1 个答案:

答案 0 :(得分:0)

实现此目标的最简单方法是将其作为预构建或后构建操作执行。你必须通过调用msbuild来编写脚本,但这很简单。