代码之家  ›  专栏  ›  技术社区  ›  Simon Randy Burden

创建自定义任务时,如何访问MSBuild详细信息?

  •  0
  • Simon Randy Burden  · 技术社区  · 14 年前

    在创建自定义Microsoft.Build.Utilities.Task的上下文中,如何访问MSBuild详细信息?

    Microsoft.Build.Utilities.Task: http://msdn.microsoft.com/en-us/library/microsoft.build.utilities.task.aspx

    http://blogs.msdn.com/b/saraford/archive/2008/10/07/did-you-know-you-can-configure-the-msbuild-verbosity-in-the-output-window-329.aspx

    2 回复  |  直到 14 年前
        1
  •  1
  •   Hans Passant    14 年前

    我不这么认为。您可以通过Task.BuildEngine属性获得对生成引擎的引用。然后简单地调用它的LogMessageEvent来生成一条消息。BuildMessageEventArgs.Importance根据详细设置确定消息是否实际可见。这与其他日志API是一致的。

        2
  •  0
  •   cheerless bog    13 年前

    设计决策背后的原因(构建无法看到细节)如下:

    (1) 构建过程不应该假设用户(以及她选择的记录器)想要什么。它们不一定属于同一个人。考虑进入一个构建,在这个构建中,任务知道详细信息,并且在诊断详细信息中只记录某些信息。您希望在控制台上以安静的详细信息进行构建,但也要附加一个数据库记录器来记录所有内容。不能这样做,因为任务从未触发事件,因为它看到了安静的冗长。

    (2) 重要性和冗长会被混淆。重要的是构建过程的提示,即具有特定详细信息的记录器可能希望对事件执行什么操作。它们存在于不同的领域:任务和构建过程中的重要性,仅在记录器中的冗长性。

    丹——几年前我帮助设计了这个。