Поделиться через


Регистрация и отмена регистрации VSPackages

Атрибуты используются для регистрации VSPackage, но

Регистрация VSPackage

Атрибуты можно использовать для управления регистрацией управляемых VSPackages. Все сведения о регистрации содержатся в PKGDEF-файле . Дополнительные сведения о регистрации на основе файлов см. в разделе "Служебная программа CreatePkgDef".

В следующем коде показано, как использовать стандартные атрибуты регистрации для регистрации VSPackage.

[PackageRegistration(UseManagedResourcesOnly = true)]
[Guid("0B81D86C-0A85-4f30-9B26-DD2616447F95")]
public sealed class BasicPackage : Package
{
    // ...
}

Отмена регистрации расширения

Если вы экспериментировали с большим количеством различных VSPackages и хотите удалить их из экспериментального экземпляра, вы можете просто выполнить команду Сброса . Найдите экспериментальный экземпляр Visual Studio на начальной странице компьютера или выполните следующую команду из командной строки:

<location of Visual Studio 2015 install>\"Microsoft Visual Studio 14.0\VSSDK\VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe" /Reset /VSInstance=14.0 /RootSuffix=Exp

Если вы хотите удалить расширение, установленное в экземпляре разработки Visual Studio, перейдите в раздел "Расширения инструментов>" и Обновления, найдите расширение и нажмите кнопку "Удалить".

Если по какой-то причине ни одна из этих методов не выполняется при удалении расширения, вы можете отменить регистрацию сборки VSPackage из командной строки следующим образом:

<location of Visual Studio 2015 install>\"Microsoft Visual Studio 14.0\VSSDK\VisualStudioIntegration\Tools\Bin\regpkg" /unregister <pathToVSPackage assembly>

Использование настраиваемого атрибута регистрации для регистрации расширения

В некоторых случаях может потребоваться создать новый атрибут регистрации для расширения. Атрибуты регистрации можно использовать для добавления новых разделов реестра или добавления новых значений в существующие ключи. Новый атрибут должен быть производным от RegistrationAttribute, и он должен переопределить Register методы и Unregister методы.

Создание настраиваемого атрибута

В следующем коде показано, как создать новый атрибут регистрации.

[AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = false)]
public class CustomRegistrationAttribute : RegistrationAttribute
{
}

Он AttributeUsageAttribute используется для классов атрибутов, чтобы указать элемент программы (класс, метод и т. д.), к которому относится атрибут, можно ли использовать несколько раз и можно ли наследовать его.

Создание раздела реестра

В следующем коде настраиваемый атрибут создает настраиваемый подраздел под ключом для зарегистрированного VSPackage.

public override void Register(RegistrationAttribute.RegistrationContext context)
{
    Key packageKey = null;
    try
    {
        packageKey = context.CreateKey(@"Packages\{" + context.ComponentType.GUID + @"}\Custom");
        packageKey.SetValue("NewCustom", 1);
    }
    finally
    {
        if (packageKey != null)
            packageKey.Close();
    }
}

public override void Unregister(RegistrationContext context)
{
    context.RemoveKey(@"Packages\" + context.ComponentType.GUID + @"}\Custom");
}

Создание нового значения в существующем разделе реестра

Пользовательские значения можно добавить в существующий ключ. В следующем коде показано, как добавить новое значение в ключ регистрации VSPackage.

public override void Register(RegistrationAttribute.RegistrationContext context)
{
    Key packageKey = null;
    try
    {
        packageKey = context.CreateKey(@"Packages\{" + context.ComponentType.GUID + "}");
        packageKey.SetValue("NewCustom", 1);
    }
    finally
    {
        if (packageKey != null)
            packageKey.Close();
    }
}

public override void Unregister(RegistrationContext context)
{
    context.RemoveValue(@"Packages\" + context.ComponentType.GUID, "NewCustom");
}