El ctor de EventPipeController accede a AppContext.BaseDirectory y pasa el resultado a Path.Combine, que lanzará una ArgumentNullException si BaseDirectory devuelve nulo. BaseDirectory devuelve el resultado de GetBaseDirectoryCore, que llama a Assembly.GetEntryAssembly () ?. Location. GetEntryAssembly puede devolver nulo, en cuyo caso GetBaseDirectoryCore devolverá nulo, en cuyo caso Path.Combine arrojará y el ctor de EventPipeController arrojará. Esto será consumido en el método Initialize por un bloque catch-all, pero parece que sería mejor no lanzarlo en primer lugar.
La invocación de configuración basada en archivos de EventPipe está destinada a fallar silenciosamente si algo sale mal; como mencionaste, esta lógica está envuelta en un bloque try / catch / finalmente. Dado que la invocación de configuración basada en archivos de Eventpipe se eliminará por completo en un próximo cambio, lo dejaré como está por ahora.
Comentario más útil
La invocación de configuración basada en archivos de EventPipe está destinada a fallar silenciosamente si algo sale mal; como mencionaste, esta lógica está envuelta en un bloque try / catch / finalmente. Dado que la invocación de configuración basada en archivos de Eventpipe se eliminará por completo en un próximo cambio, lo dejaré como está por ahora.