Wie kann die Datei beim programmgesteuerten Öffnen einer Lösung in VS zur MRU-Liste der letzten Projekte hinzugefügt werden?

Wenn eine Lösung programmgesteuert in einem Add-In / einer Erweiterung (in meinem Fall VS2012) mit geöffnet wirdSolution.Openwird die Lösungsdatei nicht wie beim Öffnen der Lösung über das Menü Datei-> Öffnen-> Projekt / Lösung zur Projekt-MRU hinzugefügt (d. h. im Menü Datei-> Zuletzt verwendete Projekte und Lösungen). Gibt es eine Möglichkeit, das Hinzufügen der Datei zu erzwingen? Ich habe einige Hinweise zur Manipulation der Registrierung gesehen (z.HKCU \ Software \ Microsoft \ VisualStudio \ 11.0 \ ProjectMRUList) Aber gibt es einen anderen Weg, der den von VS verwendeten Speicher nicht voraussetzt und daher in Zukunft mit geringerer Wahrscheinlichkeit ausfällt? Vielleicht eine VS-Schnittstelle, die sich darum kümmert, unabhängig davon, wo die Informationen gespeichert sind. Das würde mir auch erlauben zu ignorieren, was die maximale Anzahl von mru-Elementen ist, um Fehler beim Aktualisieren / Neunumerieren der vorhandenen Elemente usw. zu vermeidenIVsMRUItemsStore Aber wenn das das ist, was ich verwenden soll, bin ich mir nicht sicher, wascategoryGuid Ich würde verwenden. Aus dem, was ich gesehen habe, scheint es, dass diese Schnittstelle mit der eingebauten Suchfunktion zusammenhängt.

[Bearbeiten] Ok, ich habe noch mehr gegraben. Zuerst IVsMRUItemsStorescheint Nicht mit der Projekt-MU-Liste verknüpft, da Microsoft.VisualStudio.PlatformUI.MRUItemsStoreService auch nach dem Anzeigen des Menüs für die letzten Projekte leer zu sein scheint. Zweitens habe ich versucht, die Registrierung direkt zu manipulieren, aber das funktioniert nicht gut, da VS nichts über die Registrierungsänderung weiß und das Menü und der interne Cache unverändert bleiben. Wenn Sie anschließend ein anderes Projekt oder eine andere Lösung über das Dialogfeld "Projekt öffnen" öffnen, wird die Registrierung mit den zwischengespeicherten Informationen und dem über das Dialogfeld geöffneten Projekt / der Lösung überschrieben. Ich wäre in Ordnung mit der Bearbeitung der Registrierung, wenn es eine Möglichkeit gäbe, VS zu benachrichtigen, die Registrierungsinformationen erneut zu lesen (ohne VS zu schließen). Ich würde mich auch freuen, wenn es eine andere programmatische Möglichkeit gäbe, die Liste der jüngsten Projekte über das VS-Objektmodell zu bearbeiten.

[Edit2] Ich habe festgestellt, dass das Menüelement Ansicht im Versionsverwaltungs-Explorer von TFS genau das tut, was ich will. Es wird eine bestimmte Lösung geöffnet und gefragt, ob die Lösung konvertiert werden muss (ohne die geöffneten Dokumente zu schließen), und das Element wird der MRU hinzugefügt. Die Frage ist nun, wie ich das gleiche in meiner Erweiterung / meinem Add-In mache. Ich kann ihren Befehl nicht verwenden (es sei denn, er benötigt einen Parameter), da die von mir geöffnete Projektmappe / das Projekt nicht in TFS ist.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage