Как настроить пользовательский реестр в проекте VSTO Word Plugin? - PullRequest
2 голосов
/ 09 мая 2019

Я занимаюсь разработкой проекта плагина VSTO Word. Когда я собираю проект, он автоматически создает 4 реестра в HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins\My.Registry месте, и они как в.

Name             Type                 Data
--------------   --------------       ------------------------
(Default)        REG_SZ               (value not set)
Description      REG_SZ               My.Registry
FriendlyName     REG_SZ               My.Registry
LoadBehavior     REG_DWORD            0x00000003 (3)
Manifest         REG_SZ               file:///D:/LearningProject/My.Registry/bin/debug/My.Registry.vsto|vstolocal

Теперь я хочу добавить другой реестр по тому же пути с другой парой ключ-значение. Я не знаю, как создаются эти реестры. Так что я не могу создать свой пользовательский реестр вместе с этими существующими реестрами.

Нужно руководство.

1 Ответ

1 голос
/ 09 мая 2019

Поскольку вы создаете проект, и он добавляет эти значения, возможно, проверьте в событиях prebuild / postbuild в Visual studio

Visual studo build events

Если это не так, вам может потребоваться сделать простую запись в реестре при запуске приложения

public static bool WriteRegistryValue<T>(RegistryHive hive, string key, string value, RegistryValueKind kind, T data)
        {
            bool success = false;

            using (RegistryKey baseKey = RegistryKey.OpenRemoteBaseKey(hive, String.Empty))
            {
                if (baseKey != null)
                {
                    using (RegistryKey registryKey = baseKey.OpenSubKey(key, RegistryKeyPermissionCheck.ReadWriteSubTree))
                    {
                        if (registryKey == null)
                        {
                            using (RegistryKey createdRegistryKey = baseKey.CreateSubKey(key, true))
                            {
                                registryKey.SetValue(value, data as string);
                            }
                        }
                        else
                        {
                            registryKey.SetValue(value, data as string);
                        }
                        success = true;

                    }
                }
            }
            return success;
        }
...