Écriture dans le magasin de paramètres utilisateurWriting to the User Settings Store

Paramètres utilisateur sont accessibles en écriture paramètres telles que celles dans les Outils / Options boîte de dialogue, fenêtres Propriétés et certaines autres boîtes de dialogue.User settings are writeable settings like the ones in the Tools / Options dialog, properties windows, and certain other dialog boxes. Extensions Visual Studio peuvent utiliser pour stocker de petites quantités de données.Visual Studio extensions may use these to store small amounts of data. Cette procédure pas à pas montre comment ajouter le bloc-notes à Visual Studio comme un outil externe en lecture et écriture dans le magasin de paramètres utilisateur.This walkthrough shows how to add Notepad to Visual Studio as an external tool by reading from and writing to the user settings store.

Sauvegarde de vos paramètres utilisateurBacking up Your User Settings

  1. Vous devez être en mesure de réinitialiser les paramètres d’outils externes afin que vous puissiez déboguer et répétez la procédure.You must be able to reset the External Tools settings so that you can debug and repeat the procedure. Pour ce faire, vous devez enregistrer les paramètres d’origine afin que vous pouvez les restaurer en fonction des besoins.To do this, you must save the original settings so that you can restore them as required.

  2. Ouvrez Regedit.exe.Open Regedit.exe.

  3. Accédez à outils de HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0Exp\External\.Navigate to HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0Exp\External Tools\.

    Note

    Assurez-vous que vous cherchez à la clé qui contient \14.0Exp\ et pas \14.0\.Make sure that you are looking at the key that contains \14.0Exp\ and not \14.0\. Lorsque vous exécutez l’instance expérimentale de Visual Studio, vos paramètres utilisateur sont dans la ruche de Registre « 14.0Exp ».When you run the experimental instance of Visual Studio, your user settings are in the registry hive "14.0Exp".

  4. Avec le bouton droit de la sous-clé \External Tools, puis cliquez sur exporter.Right-click the \External Tools\ subkey, and then click Export. Assurez-vous que branche sélectionnée est sélectionnée.Make sure that Selected branch is selected.

  5. Enregistrez le fichier externe Tools.reg résultant.Save the resulting External Tools.reg file.

  6. Plus tard, lorsque vous souhaitez réinitialiser les paramètres d’outils externes, sélectionnez la clé de Registre HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0Exp\External Tools\ et cliquez sur supprimer dans le menu contextuel.Later, when you want to reset the External Tools settings, select the HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0Exp\External Tools\ registry key and click Delete on the context menu.

  7. Lorsque le confirmer la suppression de la clé boîte de dialogue s’affiche, cliquez sur Oui.When the Confirm Key Delete dialog box appears, click Yes.

  8. Cliquez sur le fichier Tools.reg externe que vous avez enregistré précédemment, cliquez sur ouvrir avec, puis cliquez sur Éditeur du Registre.Right-click the External Tools.reg file that you saved earlier, click Open with, and then click Registry Editor.

Écriture dans le magasin de paramètres utilisateurWriting to the User Settings Store

  1. Créez un projet VSIX nommé UserSettingsStoreExtension, puis ajoutez une commande personnalisée nommée UserSettingsStoreCommand.Create a VSIX project named UserSettingsStoreExtension and then add a custom command named UserSettingsStoreCommand. Pour plus d’informations sur la création d’une commande personnalisée, consultez création d’une Extension avec une commande de MenuFor more information about how to create a custom command, see Creating an Extension with a Menu Command

  2. Dans UserSettingsStoreCommand.cs, ajoutez le code suivant à l’aide des instructions :In UserSettingsStoreCommand.cs, add the following using statements:

    using System.Collections.Generic;  
    using Microsoft.VisualStudio.Settings;  
    using Microsoft.VisualStudio.Shell.Settings;  
    
  3. Dans MenuItemCallback, supprimer le corps de la méthode et obtenir de l’utilisateur à stockent les paramètres, comme suit :In MenuItemCallback, delete the body of the method and get the user settings store, as follows:

    private void MenuItemCallback(object sender, EventArgs e)  
    {  
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);  
        WritableSettingsStore userSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);  
    }  
    
  4. Maintenant déterminer si le bloc-notes est déjà défini comme un outil externe.Now find out whether Notepad is already set as an external tool. Vous devez parcourir tous les outils externes pour déterminer si le paramètre ToolCmd est « Notepad », comme suit :You need to iterate through all the external tools to determine whether the ToolCmd setting is "Notepad", as follows:

    private void MenuItemCallback(object sender, EventArgs e)  
    {  
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);  
        WritableSettingsStore userSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);  
    
        // Find out whether Notepad is already an External Tool.  
        int toolCount = userSettingsStore.GetInt32("External Tools", "ToolNumKeys");  
        bool hasNotepad = false;  
        CompareInfo Compare = CultureInfo.InvariantCulture.CompareInfo;  
        for (int i = 0; i < toolCount; i++)  
        {  
            if (Compare.IndexOf(userSettingsStore.GetString("External Tools", "ToolCmd" + i), "Notepad", CompareOptions.IgnoreCase) >= 0)  
            {  
                hasNotepad = true;  
                break;  
            }  
        }  
    }  
    
  5. Si le bloc-notes n’a pas été défini comme un outil externe, définie comme suit :If Notepad hasn't been set as an external tool, set it as follows:

    private void MenuItemCallback(object sender, EventArgs e)  
    {  
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);  
        WritableSettingsStore userSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);  
    
        // Find out whether Notepad is already installed.  
        int toolCount = userSettingsStore.GetInt32("External Tools", "ToolNumKeys");  
        bool hasNotepad = false;  
        CompareInfo Compare = CultureInfo.InvariantCulture.CompareInfo;  
        for (int i = 0; i < toolCount; i++)  
        {  
            if (Compare.IndexOf(userSettingsStore.GetString("External Tools", "ToolCmd" + i), "Notepad", CompareOptions.IgnoreCase) >= 0)  
            {  
                hasNotepad = true;  
                break;  
            }  
        }  
    
        string message = (hasNotepad) ? "Notepad already installed" : "Installing Notepad";  
         if (!hasNotepad)  
        {  
            userSettingsStore.SetString("External Tools", "ToolTitle" + toolCount, "&Notepad");  
            userSettingsStore.SetString("External Tools", "ToolCmd" + toolCount, "C:\\Windows\\notepad.exe");  
            userSettingsStore.SetString("External Tools", "ToolArg" + toolCount, "");  
            userSettingsStore.SetString("External Tools", "ToolDir" + toolCount, "$(ProjectDir)");  
            userSettingsStore.SetString("External Tools", "ToolSourceKey" + toolCount, "");  
            userSettingsStore.SetUInt32("External Tools", "ToolOpt" + toolCount, 0x00000011);  
    
            userSettingsStore.SetInt32("External Tools", "ToolNumKeys", toolCount + 1);  
        }  
    }  
    
  6. Tester le code.Test the code. N’oubliez pas qu’il ajoute le bloc-notes en tant qu’un outil externe, donc vous devez restaurer le Registre avant d’exécuter une deuxième fois.Remember that it adds Notepad as an External Tool, so you must roll back the registry before running it a second time.

  7. Générer le code et démarrer le débogage.Build the code and start debugging.

  8. Sur le outils menu, cliquez sur UserSettingsStoreCommand d’appeler.On the Tools menu, click Invoke UserSettingsStoreCommand. Cette opération ajoute le bloc-notes pour les outils menu.This will add Notepad to the Tools menu.

  9. Maintenant vous devriez voir le bloc-notes sur les outils / Options de menu, puis en cliquant sur bloc-notes doit afficher une instance de bloc-notes.Now you should see Notepad on the Tools / Options menu, and clicking Notepad should bring up an instance of Notepad.