Como você pode fazer com que o arquivo seja adicionado à lista MRU de projetos recentes ao abrir programaticamente uma solução no VS?

Quando uma solução é programaticamente aberta em um suplemento / extensão (VS2012 no meu caso) usandoSolution.Open, o arquivo da solução não é adicionado ao MRU do projeto (por exemplo, Arquivo-> Projetos Recentes e menu Soluções) como seria se você abrisse a solução usando o menu Arquivo-> Abrir-> Projeto / Solução. Existe uma maneira de forçar o arquivo a ser adicionado? Eu vi algumas referências para manipular o registro (por exemplo,HKCU \ Software \ Microsoft \ VisualStudio \ 11.0 \ ProjectMRUList) mas existe outra maneira que não pressupõe o armazenamento que o VS usa e, portanto, seria menos provável de quebrar no futuro? Talvez uma interface VS que possa cuidar dela, independentemente de onde as informações possam ser armazenadas. Isso também me permitiria ignorar o número máximo de itens, evitar erros na atualização / renumeração dos itens existentes, etc.IVsMRUItemsStore mas se é isso que eu deveria usar estou inseguro sobre o quecategoryGuid Eu estaria usando. Pelo que vi, parece que essa interface pode estar relacionada à funcionalidade de pesquisa incorporada.

[EditarOk, eu fiz mais algumas escavações. Primeiro, IVsMRUItemsStoreparece não relacionado à lista do projeto desde que o Microsoft.VisualStudio.PlatformUI.MRUItemsStoreService parece estar vazio mesmo depois de mostrar o menu de projetos recentes. Segundo, eu tentei manipular diretamente o registro, mas isso não funciona bem porque o VS não sabe sobre a alteração do registro e, portanto, o menu e seu cache interno permanecem inalterados. Se, posteriormente, você abrir outro projeto ou solução usando o diálogo Abrir Projeto, o registro será substituído pelas informações em cache, além do projeto / solução aberto por meio da caixa de diálogo. Eu ficaria ok com a manipulação do registro se houvesse alguma maneira de notificar o VS para reler as informações do registro (sem fechar o VS). Eu também ficaria feliz se houvesse alguma outra maneira programática de manipular a lista de projetos recentes através do modelo de objetos do VS.

[Edit2] Descobri que o item de menu Visualizar no Gerenciador de Controle de Origem do TFS faz exatamente o que eu quero. Ele abrirá uma determinada solução, perguntando se a solução precisa ser convertida (sem fechar os documentos abertos) e adiciona o item ao MRU. A questão agora é como eu faço a mesma coisa na minha extensão / addin? Não consigo usar o comando deles (a menos que seja necessário um parâmetro) porque a solução / projeto que estou abrindo não está no TFS.

questionAnswers(1)

yourAnswerToTheQuestion