0

Я тестирую сборку в PowerShell. Особенностью сборки является то, что она записывает информацию о трассировке с использованием технологии System.Diagnostics.Trace. Добавив ConsoleTraceListener в коллекцию Listener, мои приложения должны иметь возможность отображать все сообщения, отправленные в систему отслеживания.Почему PowerShell не показывает всю информацию о трассировке при использовании System.Diagnostic.Trace.Listeners?

Это работает в консольных приложениях и окне вывода Visual Studio. Это даже некоторые работы в PowerShell, за исключением того, что производительность намного меньше. Я подозреваю, что проблема связана с асинхронными операциями, но я действительно не знаю.

$dll = (Get-ChildItem -Recurse -Filter 'mylib.dll' | select -First 1).FullName 
[Reflection.Assembly]::LoadFile($dll) | Out-Null 

$listener = New-Object System.Diagnostics.ConsoleTraceListener 
[System.Diagnostics.Trace]::Listeners.Clear() 
[System.Diagnostics.Trace]::Listeners.Add($listener) 

$service = 'servicename' 
[Team.Library.Project.Name]::MethodAsync($service).Result 

Консольная версия этой работы, как и следовало ожидать. Вся информация о трассировке отображается в консоли. Однако эта реализация (PowerShell) отображает только несколько строк, а затем возвращает мой объект.

Это то, что я получаю с консоли. Это имеет всю информацию, я хочу:

Console application trace output.

Это то, что я получаю от PowerShell. Она имеет меньше информации:

PowerShell trace output.


Добавление: Я нашел на самом деле, что при выполнении сценария в окне консоли или в окне консоли PowerShell выход ведет себя правильно. Только PowerShell ISE работает неправильно. Возможно, это не проблема PowerShell, а ошибка ISE.

ответ

0

Я бы попытался установить конфигурацию TraceListener для pwershell_ISE.exe и активировать непосредственно ConsoleTraceListener. Кроме того, я проверил бы с DebugView, если вы увидите больше выходных данных. Если да, вы также должны перенаправить информацию DefaultTraceListener в ConsoleTraceListener или использовать пользовательский прослушиватель.