Как сделать так, чтобы файл был добавлен в список MRU последних проектов при программном открытии решения в VS?

Когда решение программно открывается в надстройке / расширении (VS2012 в моем случае), используяSolution.Openфайл решения не добавляется в MRU проектов (т. е. меню Файл-> Недавние проекты и решения), как если бы вы открывали решение с помощью меню Файл-> Открыть-> Проект / Решение. Есть ли способ заставить файл быть добавленным? Я видел некоторые ссылки на манипуляции с реестром (например,HKCU \ Software \ Microsoft \ VisualStudio \ 11,0 \ ProjectMRUList) но есть ли другой способ, который не предполагает использование хранилища, которое использует VS, и, следовательно, с меньшей вероятностью сломается в будущем? Возможно интерфейс VS, который мог бы позаботиться об этом независимо от того, где информация может быть сохранена. Это также позволило бы мне игнорировать максимальное количество элементов mru, избегая ошибок при обновлении / повторной нумерации существующих элементов и т. Д. Я нашелIVsMRUItemsStore но если это то, что я должен использовать, я не уверен, чтоcategoryGuid Я бы использовал. Из того, что я видел, кажется, что этот интерфейс может быть связан со встроенной функцией поиска.

[редактироватьХорошо, я сделал еще кое-что. Первый, IVsMRUItemsStoreкажется не связанный со списком проектов, поскольку Microsoft.VisualStudio.PlatformUI.MRUItemsStoreService кажется пустым даже после отображения меню недавних проектов. Во-вторых, я пытался напрямую манипулировать реестром, но это не сработало, потому что VS не знает об изменении реестра, и поэтому меню и его внутренний кэш остаются неизменными. Если впоследствии вы откроете другой проект или решение с помощью диалогового окна «Открыть проект», реестр будет перезаписан кэшированной информацией плюс проект / решение, открытое через диалоговое окно. Я был бы в порядке манипулирования реестром, если бы был какой-то способ уведомить VS о перечитывании информации реестра (без закрытия VS). Я также был бы рад, если бы существовал какой-то другой программный способ манипулирования списком недавних проектов через объектную модель VS.

[Edit2] Я обнаружил, что пункт меню «Вид» в TFS 'Source Control Explorer делает именно то, что мне нужно. Он откроет данное решение, запрашивая, нужно ли преобразовать решение (не закрывая открытые документы), и добавляет элемент в MRU. Теперь вопрос в том, как мне сделать то же самое в моем расширении / дополнении? Я не могу использовать их команду (если она не принимает параметр), потому что открываемое мной решение / проект не в TFS.