Использование журнала действий
VSPackages может записывать сообщения в журнал действий. Эта функция особенно полезна для отладки VSPackage в розничных средах.
Совет
Журнал действий всегда включен. Visual Studio сохраняет скользящий буфер последних 100 записей, а также первые 10 записей, которые содержат общие сведения о конфигурации.
Запись в журнал действий
Вставьте этот код в метод Initialize или в любой другой метод, кроме конструктора VSPackage:
IVsActivityLog log = GetService(typeof(SVsActivityLog)) as IVsActivityLog; if (log == null) return; int hr = log.LogEntry((UInt32)__ACTIVITYLOG_ENTRYTYPE.ALE_INFORMATION, this.ToString(), string.Format(CultureInfo.CurrentCulture, "Called for: {0}", this.ToString()));
Этот код получает службу SVsActivityLog и приводит ее к интерфейсу IVsActivityLog . LogEntry записывает информационную запись в журнал действий с помощью текущего культурного контекста.
При загрузке VSPackage (обычно при вызове команды или открытии окна) текст записывается в журнал действий.
Проверка журнала действий
Запустите Visual Studio с параметром командной строки /Log , чтобы записать ActivityLog.xml на диск во время сеанса.
После закрытия Visual Studio найдите журнал действий в подпапке для данных Visual Studio:
*%AppData%\Microsoft\VisualStudio\{version}\ActivityLog.xml
Откройте журнал действий с любым текстовым редактором. Ниже приведена типичная запись:
Called for: Company.MyApp.MyAppPackage ...
Устранение неполадок импорт и экспорт в расширениях редактора: доступ к журналу ошибок композиции MEF
При написании расширения на основе редактора могут возникнуть проблемы, если вы пытаетесь импортировать то, что не существует в текущей установке VS, или если вы неправильно создаете импорт или экспорт. Основным способом поиска и устранения этих проблем является ссылка на журнал ошибок композиции Управляемой платформы расширяемости (MEF), хранящийся в %localappdata%\Microsoft\VisualStudio{version}\ComponentModelCache\Microsoft.VisualStudio.Default.err
. Дополнительные сведения об использовании MEF в расширениях проверка этой документации.
Отказоустойчивость
Так как журнал действий является службой, журнал действий недоступен в конструкторе VSPackage.
Перед записью в него необходимо получить журнал действий. Не кэшируйте или не сохраняйте журнал действий для дальнейшего использования.