Можно ли заставить SLAB работать с Microsoft.Diagnostics.Tracing.EventSource?
Официальные заметки о выпуске говорят:
Улучшена совместимость с пакетом событий EventSource
- Исходный код SLAB должен быть обновлен и перестроен для работы с пакетом событий NuSource (который поддерживает каналы, но не поддерживает выборку). Процесс сейчас довольно безболезненный.
- Добавлены ссылки на пакет nuget EventSource во все проекты
- Изменено
System.Diagnostics.Tracing
вMicrosoft.Diagnostics.Tracing
во всех исходных файлах- Определил константу EVENT_SOURCE_PACKAGE в проекте модульных тестов (чтобы отключить тесты, которые не могут работать с версией nuget).
Это немного загадочно. Что-то кажется задом наперед, потому что я вообще не вижу ссылок на Microsoft.Diagnostics.Tracing
в загрузке Nuget.
Или это то, что вам нужно сделать, чтобы создать его (так сказать, "Добавить", "Изменить", "Определить вместо добавленного", "Изменено", "Определено")?
Хм, хорошо, этих инструкций (если они инструкции) недостаточно:
- Есть три места, где
Microsoft.Diagnostics.Tracing
уже ссылается, так что дает двойные предупреждения - Есть несколько мест, где между
Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Etw.Configuration.EventSourceSettings
(который является классом) иMicrosoft.Diagnostics.Tracing.EventSourceSettings
(который является перечислением).
3 ответа
Итак, я только что заставил SLAB работать с пакетами NuGet EventSource, следуя указанным выше инструкциям с SLAB 1.1.28 и последним NuGet EventSource из пространства имен Microsoft.Diagnostics.Tracing.EventSource.
По сути, вам нужно исправить неоднозначные ссылки между Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Etw.Configuration.EventSourceSettings и Microsoft.Diagnostics.Tracing.EventSourceSettings, как указано выше.
Требуется ссылка Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Etw.Configuration.EventSourceSettings.
Он работает, создает журналы простых файлов и записывает их в программу просмотра событий, а при использовании совместно с контроллером, таким как PerfView, создает файлы ETL для подробного анализа.
Далее я буду тестировать случай вне процесса.
Немного детективной работы и здравого смысла:
Дата последнего выпуска SLAB - 25 июля 2014 года, было загружено множество версий Microsoft.Diagnostics.Tracing.EventSource
в том числе тот, который предположительно невинно введен EventSourceSettings
,
Если я устанавливаю и ссылаюсь на версию 1.0.26, инструкции работают.
Теперь просто нужно выяснить, чего нет в версии 1.1.28, и не скучаю ли я по ним.
Детективная работа @ Бенджола верна.
Многие пользователи хотели иметь возможность использовать каналы EventSource (которые входят в пакет EventSource NuGet) с SLAB, поэтому совместимость была улучшена, чтобы компиляция с пакетом EventSource во время выпуска была совершенно безболезненной.
Однако SLAB недавно не обновлялся, а пакет EventSource продолжает добавлять / изменять функции. Некоторые из них могут привести к серьезным изменениям в текущей реализации SLAB. Поскольку совместимость с последующими выпусками EventSource, возможно, не была проверена (я не уверен, что команда сделала с этим), могут быть потенциальные проблемы.