2016-05-06 9 views
0

System.Management.Automationアセンブリのクラスを使用してPowerShellをトリガするC#コンソールアプリケーションがあります。 PowerShellスクリプトは、PowerShellスクリプト内で実行を実行するサードパーティのライブラリ(実行するスクリプト内のImport-Moduleを使用してライブラリをインポートする)を参照します。このサードパーティのライブラリは、Trace.WriteLineを全面的に使用しており、これをコンソールに出力しないようにしたいと考えています。サードパーティの参照を含むC#コンソールアプリケーションのトレースを無効にする

すべてのトレースを無効にするためにapp.configに設定するグローバルフラグはありません。

system.diagnostics要素は、リスナーのないソース、リスナーのないトレース、およびスイッチなしで設定されますが、出力はまだコンソールに書き込まれています。どのようにすべてのトレースを無効にすることができますか?

+0

おそらくライブラリはコンソールをトレースリスナーとして再び追加しますか? – CodeCaster

+0

そうした場合、これを制御する方法はありますか?アセンブリは、PowerShellスクリプト自体でImport-Moduleを使用して実際にロードされます(これを含めるように質問が更新されます)。そのあとで、Traceの設定を変更できますか? – user2231663

答えて

0

ポインタの@CodeCasterのおかげで、実際には、リスナーがサードパーティのライブラリによって追加されていたため、app.configの設定は効果がありませんでした。

サードパーティ製のライブラリがロードされた後にSystem.Diagnostics.Trace.Listeners.Clear()を実行すると、すぐに問題が解決されました。

関連する問題