重写MSBuild中的继承任务

重写MSBuild中的继承任务,msbuild,overriding,verbosity,Msbuild,Overriding,Verbosity,我有一个继承的MSBuild脚本,它调用不允许更改的目标。但是,其中一些目标调用的方法当前在输出窗口中过于冗长-例如,任务被使用得太多,以至于其输出正在消耗任何其他相关消息 由于我无法访问调用的目标,因此无法将其切换到不太详细的内容。我使用了/verbosity开关,但是minimal给我的输出太少,而normal给我的输出太多 是否有其他方法可以影响的详细程度,或者影响MSBuild的详细程度?您可以创建自己的记录器。它有一点复杂,但基本上允许您精确调整希望看到的消息。最简单的方法是覆盖默认的

我有一个继承的MSBuild脚本,它调用不允许更改的目标。但是,其中一些目标调用的方法当前在输出窗口中过于冗长-例如,
任务被使用得太多,以至于其输出正在消耗任何其他相关消息

由于我无法访问调用
的目标,因此无法将其切换到不太详细的内容。我使用了
/verbosity
开关,但是
minimal
给我的输出太少,而
normal
给我的输出太多


是否有其他方法可以影响
的详细程度,或者影响MSBuild的详细程度?

您可以创建自己的记录器。它有一点复杂,但基本上允许您精确调整希望看到的消息。最简单的方法是覆盖默认的记录器


另一个更简单的选项是覆盖复制任务。创建名为Copy的自定义任务,并使用UsingTask声明引用它。我认为这个声明需要首先出现(不记得任务覆盖是第一个胜利还是最后一个胜利)。同样,您可以在MSBuild程序集中对默认复制任务进行子类化,并重写Execute,或者只滚动自己的复制任务。在任务中,您可以通过调用Log.LogMessage并提供每条消息的级别来调整与各种消息相关联的详细级别,这样您就可以控制它们将显示的命令行详细程度。

我已经讨论了一些,看看是否可以找到如何覆盖复制任务的方法,但是我以前从未编写过MSBuild任务,也不知道Execute()方法中应该包含什么。您是否愿意提供一个只进行复制的简单实现,然后我可以添加任何其他需要的内容?我将不胜感激