Автоматический запуск кода расширения в Visual Studio при запуске
можно ли создать расширение для Visual Studio, которое запускается в фоновом режиме, как только пользователь открывает среду IDE Visual Studio? Например, я создаю расширение, которое получает текущий активный адрес файла в Visual Studio (с C#), но я хотел бы, чтобы это расширение всегда работало в фоновом режиме без необходимости активации пользователем, нажав кнопку или нажав какую-либо комбинацию клавиш.
возможно ли это, и если да, то как это лучше делать это?
любая помощь была бы очень признательна! С Уважением, Эрфан
3 ответов
Так как вы пометили свой вопрос с visual-studio-2010
Я предполагаю, что вы работаете над "надстройкой", а не над "расширениями VSPackage".
В этом случае, вы можете использовать OnConnection
обработчик событий.
Если вы работаете над расширениями VSPackage, вы можете использовать атрибут ProvideAutoLoad
.
просто найдите их, вы найдете достаточную информацию. Оба способа также описаны вкратце здесь в разделе " Как я могу запустить код надстройки в VSPackage?"
для VS 2010 и выше рекомендуемый подход к расширяемости-это пакет (VS 2015 не позволит надстройки).
чтобы загрузить пакет при загрузке Visual Studio, см. раздел HOWTO: автоматическая загрузка пакета Visual Studio.
после загрузки ваш пакет может быть заинтересован в двух различных событиях изменения выбора:
- чтобы получить уведомление, когда выбор в обозревателе решений изменяется, получить IVsMonitorSelection интерфейс и называем AdviseSelectionEvents / UnadviseSelectionEvents и предоставить класс, который реализует IVsSelectionEvents интерфейс.
- чтобы получить уведомление при изменении активного окна (которое может быть в окне документа или окно), реализовать IVsWindowFrameNotify интерфейс.
для расширения добавьте следующий атрибут в класс пакета, это загрузит расширение, если решение не открыто в visual studio. Я тестировал это с VS 2015 и 2017.
[ProvideAutoLoad(UIContextGuids80.NoSolution)]