Usar o repositório de configurações
Existem dois tipos de armazenamentos de configurações:
Definições de configuração, que são configurações somente leitura do Visual Studio e VSPackage. O Visual Studio mescla configurações de todos os arquivos .pkgdef conhecidos nesse armazenamento.
Configurações do usuário, que são configurações graváveis, como aquelas exibidas em páginas na caixa de diálogo Opções , páginas de propriedades e algumas outras caixas de diálogo. As extensões do Visual Studio podem usá-los para armazenamento local de pequenas quantidades de dados.
Este passo a passo mostra como ler dados do repositório de definições de configuração. Consulte Gravando no Repositório de Configurações do Usuário para obter uma explicação de como gravar no repositório de configurações do usuário.
Criando o projeto de exemplo
Esta seção mostra como criar um projeto de extensão simples com um comando de menu para demonstração.
Cada extensão do Visual Studio começa com um projeto de implantação VSIX que conterá os ativos de extensão. Crie um projeto VSIX do Visual Studio chamado
SettingsStoreExtension
. Você pode encontrar o modelo de projeto VSIX na caixa de diálogo Novo projeto em Visual C# / Extensibilidade.Agora adicione um modelo de item de comando personalizado chamado SettingsStoreCommand. Na caixa de diálogo Adicionar Novo Item , vá para Visual C# / Extensibilidade e selecione Comando Personalizado. No campo Nome na parte inferior da janela, altere o nome do arquivo de comando para SettingsStoreCommand.cs. Para obter mais informações sobre como criar um comando personalizado, consulte Criando uma extensão com um comando de menu
Usando o Repositório de Definições de Configuração
Esta seção mostra como detectar e exibir definições de configuração.
No arquivo SettingsStorageCommand.cs adicione o seguinte usando diretivas:
using System.Collections.Generic; using Microsoft.VisualStudio.Settings; using Microsoft.VisualStudio.Shell.Settings; using System.Windows.Forms;
No
MenuItemCallback
, remova o corpo do método e adicione estas linhas obter o armazenamento de definições de configuração:SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider); SettingsStore configurationSettingsStore = settingsManager.GetReadOnlySettingsStore(SettingsScope.Configuration);
O ShellSettingsManager é uma classe auxiliar gerenciada sobre o IVsSettingsManager serviço.
Agora descubra se as Ferramentas do Windows Phone estão instaladas. Seu código deve ficar assim:
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); }
Testa o código. Compile o projeto e comece a depuração.
Na instância experimental, no menu Ferramentas , clique em Invoke SettingsStoreCommand.
Você verá uma caixa de mensagem dizendo Ferramentas de desenvolvedor do Microsoft Windows Phone: seguido de Verdadeiro ou Falso.
O Visual Studio mantém o armazenamento de configurações no registro do sistema.
Para usar um editor do Registro para verificar as definições de configuração
Abra o Regedit.exe.
Navegue até HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0Exp_Config\InstalledProducts\.
Observação
Verifique se você está olhando para a chave que contém \14.0Exp_Config\ e não \14.0_Config\. Quando você executa a instância experimental do Visual Studio, as definições de configuração estão no hive do Registro "14.0Exp_Config".
Expanda o nó \Produtos Instalados\. Se a mensagem nas etapas anteriores for Microsoft Windows Phone Developer Tools Installed: True, então \Installed Products\ deve conter um nó Microsoft Windows Phone Developer Tools. Se a mensagem for Microsoft Windows Phone Developer Tools Installed: False, então \Installed Products\ não deve conter um nó Microsoft Windows Phone Developer Tools.