¿Cómo puede hacer que el archivo se agregue a la lista MRU de proyectos recientes al abrir programáticamente una solución en VS?

Cuando una solución se abre mediante programación en un complemento / extensión (VS2012 en mi caso) usandoSolución.Abierto, el archivo de la solución no se agrega al MRU de los proyectos (es decir, Archivo-> Menú Proyectos y soluciones recientes) como lo haría si abriera la solución utilizando el menú Archivo-> Abrir-> Proyecto / Solución. ¿Hay alguna manera de forzar que el archivo sea agregado? He visto algunas referencias a la manipulación del registro (por ejemplo,HKCU \ Software \ Microsoft \ VisualStudio \ 11.0 \ ProjectMRUList) ¿pero hay otra forma que no asuma el almacenamiento que VS usa y, por lo tanto, sería menos probable que se rompa en el futuro? Tal vez una interfaz VS que pueda ocuparse de ella independientemente de dónde se almacene la información. Eso también me permitiría ignorar cuál es el número máximo de elementos mru, evitando errores en la actualización / numeración de los elementos existentes, etc. Encontré elIVsMRUItemsStore pero si eso es lo que debería usar, no estoy seguro de quécategoryGuid Yo estaria usando Por lo que he visto, parece que esta interfaz podría estar relacionada con la funcionalidad de búsqueda integrada.

[Editar] Ok, he hecho un poco más de excavación. Primero, IVsMRUItemsStoreparece no relacionado con la lista de proyectos del proyecto ya que Microsoft.VisualStudio.PlatformUI.MRUItemsStoreService parece estar vacío incluso después de mostrar el menú de proyectos recientes. En segundo lugar, he intentado manipular directamente el registro, pero eso no funciona bien porque VS no conoce el cambio en el registro, por lo que el menú y su caché interno permanecen sin cambios. Si posteriormente abre otro proyecto o solución utilizando el cuadro de diálogo Abrir proyecto, el registro se sobrescribe con la información almacenada en caché más el proyecto / solución abierto a través del cuadro de diálogo. Estaría de acuerdo con manipular el registro si hubiera alguna forma de notificar a VS que vuelva a leer la información del registro (sin cerrar VS). También me alegraría si hubiera alguna otra forma programática de manipular la lista de proyectos recientes a través del modelo de objetos de VS.

[Edit2] Encontré que el elemento del menú Ver en Source Control Explorer de TFS hace exactamente lo que quiero. Abrirá una solución dada, preguntando si la solución necesita convertirse (sin cerrar los documentos abiertos) y agrega el elemento a la MRU. La pregunta ahora es ¿cómo hago lo mismo en mi extensión / complemento? No puedo usar su comando (a menos que tome un parámetro) porque la solución / proyecto que estoy abriendo no está en TFS.

Respuestas a la pregunta(1)

Su respuesta a la pregunta