2010-01-05 3 views
1

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

Спасибо.

ответ

2

VCProjectEngineEventsSolutionLoaded событие.

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

+0

Это замечательно! Я немного незнаком с C#, хотя, может быть, я мог бы беспокоить вас примером того, как вы регистрируете крюк? Благодарю. – coppro

2

Вы можете использовать Saver add-in source code в качестве примера (это надстройка для Вкладки студии надстройки):
В 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