Можно ли заставить SLAB работать с Microsoft.Diagnostics.Tracing.EventSource?

В официальных примечаниях к выпуску говорится:

Улучшена совместимость с пакетом nuget EventSource.

  • SLAB's source must be updated and rebuilt to work with the EventSource nuget package (which supports channels, but does not support sampling). The process is now fairly painless.
    • Added references to the EventSource nuget package to all projects
    • Изменено 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 (это перечисление) есть несколько мест, где возникает неоднозначность.

person Benjol    schedule 28.01.2016    source источник


Ответы (3)


Немного детективной работы и здравого смысла:

Дата последнего выпуска SLAB — 25 июля 2014 года, было множество версий Microsoft.Diagnostics.Tracing.EventSource, включая ту, которая предположительно невинно представила EventSourceSettings.

Если я устанавливаю и ссылаюсь на версию 1.0.26, инструкции работают.

Теперь осталось выяснить, каких вещей из версии 1.1.28 не хватает, и не хватает ли их мне.

person Benjol    schedule 28.01.2016
comment
Как вы заставили это работать? Когда я пытаюсь включить события, метод enableEvents() ожидает System.Diagnostics.Tracing.EventSource в качестве параметра. У вас есть пример того, как вы включили события, чтобы заставить Slab работать с Microsoft.Diagnostics.Tracing.EventSource? - person Philipp Stauss; 11.03.2016
comment
@Philipp, изменил System.Diagnostics.Tracing на Microsoft.Diagnostics.Tracing во всех исходных файлах, но, честно говоря, с тех пор я отказался, так что никаких обещаний - person Benjol; 11.03.2016

Итак, я только что заставил 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 для подробного анализа.

Далее я буду тестировать случай вне процесса.

person Paula    schedule 22.08.2016

Детективная работа @Benjol правильная.

Многие пользователи хотели иметь возможность использовать каналы EventSource (которые включены в пакет EventSource NuGet) с SLAB, поэтому совместимость была улучшена, чтобы сделать компиляцию с пакетом EventSource во время выпуска довольно безболезненной.

Однако в последнее время SLAB не обновлялся, но пакет EventSource продолжает добавлять/изменять функции. Некоторые из них могут быть критическими изменениями в текущей реализации SLAB. Поскольку совместимость с последующими выпусками EventSource, возможно, не была протестирована (я не уверен, что команда сделала для этого), могут возникнуть потенциальные проблемы.

person Randy supports Monica    schedule 18.02.2016