使用设置存储

有两种类型的设置存储:

  • 配置设置是只读的 Visual Studio 和 VSPackage 设置。 Visual Studio 会将所有已知 .pkgdef 文件中的设置合并到此存储中。

  • 用户设置,这些设置是可写的设置,例如在“选项”对话框中的页面上显示的设置、属性页和其他某些对话框。 Visual Studio 扩展可能会将这些扩展用于少量数据的本地存储。

    本演练演示如何从配置设置存储中读取数据。 有关如何写入用户设置存储的说明,请参阅“写入用户设置应用商店”。

创建示例项目

本部分介绍如何使用菜单命令创建简单的扩展项目进行演示。

  1. 每个 Visual Studio 扩展都以包含扩展资产的 VSIX 部署项目开头。 创建名为 SettingsStoreExtension 的 Visual Studio VSIX 项目。 可以在 Visual C# /Extensibility 下的“新建项目”对话框中找到 VSIX 项目模板

  2. 现在,添加名为 设置StoreCommand 的自定义命令项模板。 在 “添加新项 ”对话框中,转到 Visual C# /Extensibility 并选择“ 自定义命令”。 在窗口底部的“名称”字段中,将命令文件名更改为 设置StoreCommand.cs。 有关如何创建自定义命令的详细信息,请参阅 使用菜单命令创建扩展

使用配置设置存储

本部分介绍如何检测和显示配置设置。

  1. 在 设置存储Command.cs 文件中,添加以下 using 指令:

    using System.Collections.Generic;
    using Microsoft.VisualStudio.Settings;
    using Microsoft.VisualStudio.Shell.Settings;
    using System.Windows.Forms;
    
  2. MenuItemCallback 中删除方法的正文,并添加以下行以获取配置设置存储:

    SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);
    SettingsStore configurationSettingsStore = settingsManager.GetReadOnlySettingsStore(SettingsScope.Configuration);
    

    ShellSettingsManager它是服务上的IVsSettingsManager托管帮助程序类。

  3. 现在了解是否已安装 Windows 电话 工具。 代码应如下所示:

    private void MenuItemCallback(object sender, EventArgs e)
    {
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);
        SettingsStore configurationSettingsStore = settingsManager.GetReadOnlySettingsStore(SettingsScope.Configuration);
        bool arePhoneToolsInstalled = configurationSettingsStore.CollectionExists(@"InstalledProducts\Microsoft Windows Phone Developer Tools");
        string message = "Microsoft Windows Phone Developer Tools: " + arePhoneToolsInstalled;
        MessageBox.Show(message);
    }
    
  4. 测试代码。 生成项目并启动调试。

  5. 在实验实例的“工具”菜单上,单击“调用设置StoreCommand”。

    应会看到一个消息框,显示 Microsoft Windows 电话开发人员工具:后跟 TrueFalse

    Visual Studio 将设置存储在系统注册表中。

使用注册表编辑器验证配置设置

  1. 打开 Regedit.exe。

  2. 导航到 HKEY_CURRENT_U标准版R\Software\Microsoft\VisualStudio\14.0Exp_Config\InstalledProducts\。

    注意

    请确保查看包含 \14.0Exp_Config\ 而不是 \14.0_Config\ 的键。 运行 Visual Studio 的实验实例时,配置设置位于注册表配置单元“14.0Exp_Config”。

  3. 展开\已安装的产品\节点。 如果前面的步骤中的消息是 Microsoft Windows 电话 Developer Tools Installed: True,则 \Installed Products\ 应包含 Microsoft Windows 电话 Developer Tools 节点。 如果消息为 Microsoft Windows 电话 Developer Tools Installed: False,则 \Installed Products\ 不应包含 Microsoft Windows 电话 Developer Tools 节点。