为什么日志输出显示在控制台主机中,而不显示在ISE中?(v4.0)

Why does logging output show in console host, but not in ISE? (v4.0)

本文关键字:显示 ISE v4 输出 日志 控制台 主机 为什么      更新时间:2023-10-16

我正在引用一个DLL文件,其中包含API所需的C++类。据我所知,该类的默认构造函数将一堵文本墙输送到我无法触摸的流中。我一次重定向一个输出流,试图隔离它,并在不成功影响文本的情况下达到6。它是在记录数据,在这种情况下我不关心它;我希望它消失。

构造函数不会返回文本(对象正常成功返回),它只是在构造函数执行期间发送到控制台。我认为这就是Out-Null和>$Null不起作用的原因。

当我在ISE中运行相同的程序时,控制台中的文本是而不是!这是一条很有说服力的线索,我去寻找环境差异——但有很多环境差异。我应该调查哪些?

我认为重要的区别在于PowerShell.exe是一个控制台子系统应用程序。任何类型的stdout输出(printf、cout<<'foo'等)都将显示在控制台中。另一方面,ISE是一个Windows子系统应用程序,没有控制台。您在ISE中看到的控制台窗格只是另一个工具窗口,它看起来和行为都像控制台,就像Visual Studio中的NuGet Package Manager控制台一样。