EventPipeControllerのctorはAppContext.BaseDirectoryにアクセスし、結果をPath.Combineに渡します。これにより、BaseDirectoryがnullを返した場合にArgumentNullExceptionがスローされます。 BaseDirectoryは、Assembly.GetEntryAssembly()?. Locationを呼び出すGetBaseDirectoryCoreの結果を返します。 GetEntryAssemblyがnullを返す場合があります。その場合、GetBaseDirectoryCoreはnullを返します。この場合、Path.Combineがスローされ、EventPipeControllerctorがスローされます。 これは、Initializeメソッドでキャッチオールブロックによって食べられますが、そもそもスローしない方がよいようです。
EventPipeのファイルベースの構成呼び出しは、問題が発生した場合にサイレントに失敗することを目的としています。前述のように、このロジックはtry / catch / finallyブロックにラップされています。 Eventpipeのファイルベースの構成呼び出しは、今後の変更で完全に削除される予定なので、今のところはそのままにしておきます。
最も参考になるコメント
EventPipeのファイルベースの構成呼び出しは、問題が発生した場合にサイレントに失敗することを目的としています。前述のように、このロジックはtry / catch / finallyブロックにラップされています。 Eventpipeのファイルベースの構成呼び出しは、今後の変更で完全に削除される予定なので、今のところはそのままにしておきます。