Хук надстройки Visual Studio при загрузке решения - PullRequest
1 голос
/ 06 января 2010

Я пытаюсь написать надстройку для Visual Studio, которая должна запускаться при каждой загрузке решения. В конце концов, я надеюсь сделать это надстройкой для решения, чтобы она работала только для тех решений, которые в ней нуждаются, но мне интересно, есть ли способ, как моя надстройка зацепит пользователя, загружающего решение?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 13 января 2010

В качестве примера можно использовать Исходный код надстройки Saver (это надстройка для надстройки Tabs Studio):
В Saver.cs вы подписываетесь на события:

solutionEventsSink = new SolutionEventsSink(orderController);
System.IServiceProvider serviceProvider = new Microsoft.VisualStudio.Shell.ServiceProvider(dte as Microsoft.VisualStudio.OLE.Interop.IServiceProvider);
vsSolution = ServiceProvider.GetService(typeof(Microsoft.VisualStudio.Shell.Interop.SVsSolution)) as Microsoft.VisualStudio.Shell.Interop.IVsSolution;
vsSolution.AdviseSolutionEvents(solutionEventsSink, out sinkCookie);

В SolutionEventsSink.cs - фактические обработчики событий решения:

class SolutionEventsSink : Microsoft.VisualStudio.Shell.Interop.IVsSolutionEvents
2 голосов
/ 06 января 2010

Событие VCProjectEngineEvents SolutionLoaded.

Редактировать: Я могу только надеяться, что кто-то другой может предложить пример, который он может опубликовать - единственный подходящий мне код - это то, что я не могу опубликовать.

...