Bonjour,
je développe un "mini" Add-in pour VS2008 et je cherche à être notifié lorsque le développeur a chargé une solution.
Comment intercepter cet évènement ?
Merci.
Version imprimable
Bonjour,
je développe un "mini" Add-in pour VS2008 et je cherche à être notifié lorsque le développeur a chargé une solution.
Comment intercepter cet évènement ?
Merci.
http://support.microsoft.com/kb/555430 (lis le bien car ca répond à ta question :))
note que le lien ainsi que mon article étaient valable pour les anciennes versions de VS. de mémoire, avec 2010, l'accès à Visual ne se fera plus via DTE et je suis pas sûr que ca soit le cas avec VS2008 car j'ai pas fais d'addin sur ce dernier
Merci, ça fonctionne nickel !
Pour la petite histoire, je m'attendais plutôt à trouver les événements de la solution dans... l'objet Solution de l'application ! Ce doit être une contrainte technique qui m'échappe encore.
A noter que VS2008 utilise des DTE2 au lieu des _DTE mais j'ai pu retrouver mes billes sans problème. Sans être allé vérifier, j'ai l'impression qu'il s'agit de wrappers d'objets COM (VS2008 est écrit en natif ?). Tant mieux si VS2010 ne les utilise plus car j'ai l'impression qu'ils traînent quelques bizarreries.
Je précise que j'ai rencontré le problème décrit par la page du support microsoft donné plus haut :
Code:
1
2
3
4
5
6
7
8
9 // Ne marche que pour la première solution chargée public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; _applicationObject.Events.SolutionEvents.Opened += new _dispSolutionEvents_OpenedEventHandler( SolutionEvents_Opened ); }
Code:
1
2
3
4
5
6
7
8
9
10
11
12 //Marche toujours private SolutionEvents solutionEvents; public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; solutionEvents = _applicationObject.Events.SolutionEvents; solutionEvents.Opened += new _dispSolutionEvents_OpenedEventHandler( SolutionEvents_Opened ); }
et le bouton résolu??
lors de la conférence à los angeles, il me semble que le mec a dit mot pour mot " et pour tous ceux qui se sont fait chier avec DTE, vous allez enfin trouvé cela extra simple" :DCitation:
Tant mieux si VS2010 ne les utilise plus car j'ai l'impression qu'ils traînent quelques bizarreries.