我有一个继承的 MSBuild 脚本,它调用我不允许更改的目标。但是,其中一些目标调用当前在输出窗口中过于冗长的方法 - 例如,<Copy>
任务被使用太多以至于它的输出正在耗尽任何其他相关消息。
由于我无权访问目标调用<Copy>
,因此无法将其切换为不那么冗长的内容。我玩过/verbosity
开关,但minimal
给我的输出太少,normal
给我太多。
有没有其他方法可以影响<Copy>
具体或一般 MSBuild 的详细程度?
我有一个继承的 MSBuild 脚本,它调用我不允许更改的目标。但是,其中一些目标调用当前在输出窗口中过于冗长的方法 - 例如,<Copy>
任务被使用太多以至于它的输出正在耗尽任何其他相关消息。
由于我无权访问目标调用<Copy>
,因此无法将其切换为不那么冗长的内容。我玩过/verbosity
开关,但minimal
给我的输出太少,normal
给我太多。
有没有其他方法可以影响<Copy>
具体或一般 MSBuild 的详细程度?
您可以创建自己的记录器。它有点涉及,但基本上可以让您精确调整您想要查看的消息。最简单的做法是覆盖默认记录器。
另一个更简单的选择是覆盖复制任务。创建您自己的名为 Copy 的自定义任务,并使用 UsingTask 声明来引用它。我认为这个声明需要首先出现(不记得任务覆盖是第一个获胜还是最后一个获胜)。同样,您可以将 MSBuild 程序集中的默认复制任务子类化并覆盖执行,或者只是滚动您自己的任务。在任务中,您可以通过调用 Log.LogMessage 并提供每条消息的级别来调整与各种消息关联的详细级别,这样您就可以控制它们将显示的命令行详细级别。