ich möchte jetzt wie kann ich ein VSpackage neu starten, ich meine wie wenn es von Null geladen wurde. Ich habe eine Erweiterung erstellt, die mit der tatsächlichen Lösung funktioniert, und wenn ich zu einer anderen Lösung wechseln muss, bleibt der Zustand der Erweiterung erhalten, und das möchte ich nicht. Bis jetzt schließe ich die IDE und starte sie dann wieder mit der Erweiterung in seinem ursprünglichen Zustand. Die Möglichkeit zu haben, ohne die IDE zu schließen, wäre viel besser.Starten Sie ein VSpackage, als ob es gerade geladen wurde
1
A
Antwort
2
Sobald Visual Studio Ihre VSPackage-Binärdatei lädt, bleibt sie im Arbeitsspeicher, bis der Prozess beendet wird. Dies ist einfach Teil der Architektur von Visual Studio.
Sie sollten Ihre Erweiterung ändern, um die Tatsache zu behandeln, dass Visual Studio-Benutzer während einer Sitzung mehrere Lösungen im Laufe der Zeit geöffnet haben.
Sie können dies erreichen, indem Sie Ihre Objekte so entwerfen, dass sie mit einer bestimmten Lösung verknüpft sind.
Sie können Lösungsereignisse in einem Visual Studio-Paket über die IVsSolutionEvents interface abonnieren. Wenn Sie eine Benachrichtigung erhalten, dass die Lösung geschlossen wurde, zerstören Sie Ihre Objekte, die mit dieser Lösung verknüpft sind.
danke, gute Idee, ich werde suchen, wo ist und wie kann ich einen Handler zu einem "Close Solution Event" hinzufügen, wenn Sie wüssten, wo ist, geben Sie mir bitte einen Hinweis. Um das Tool zu initialisieren, überprüfe ich, ob eine Lösung offen ist, aber zu schließen ist eine schlechte Idee, diesen Status kontinuierlich zu überprüfen. Ich muss dieses Ereignis finden. – mjsr
Was Sie suchen, ist IVsSolution Veranstaltungen. Ich habe einen Link zu der Dokumentation in der Antwort hinzugefügt. –