以编程方式查找VS2017最近使用(MRU)解决方案和项目

时间:2017-03-14 06:40:58

标签: visual-studio visual-studio-2017 mru

我知道Visual Studio 2017现在支持所有SKU(企业版,专业版和社区版)解释here的无注册表并排安装。

我们需要访问VS2017最近使用的(MRU)解决方案和项目列表。

对于以前的VS2017版本,我们用于查询注册表。

  • 当从VS2017 devenv进程内部运行时,此注册表查询代码仍然正常工作,
  • 但它在独立/自定义流程中执行时不再起作用(我的意思是一个不是VS2017 devenv流程的流程)这就是我们需要做的事情

理想情况下,这可以从VS setup API完成,但我找不到任何示例代码。

另外,我们仍然可以依赖RegLoadAppKey()函数,如VS 2017 breaking change article中所述(欢迎使用任何代码)

或者可能有其他API可以做到这一点?

感谢您的帮助,

1 个答案:

答案 0 :(得分:6)

访问VS 2017设置的推荐方法是使用External Settings Manager

ExternalSettingsManager ext = ExternalSettingsManager.CreateForApplication(@"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe");
SettingsStore store = ext.GetReadOnlySettingsStore(SettingsScope.UserSettings);
foreach (string name in store.GetPropertyNames(@"MRUItems\{a9c4a31f-f9cb-47a9-abc0-49ce82d0b3ac}\Items"))
{
    string value = store.GetString(@"MRUItems\{a9c4a31f-f9cb-47a9-abc0-49ce82d0b3ac}\Items", name);
    Console.WriteLine("Property name: {0}, value: {1}", name, value);
}

要使用外部设置管理器,您需要将Microsoft.VisualStudio.Settings.15.0.dll的引用添加到您的项目中。