Registrar e cancelar o registro de VSPackages

Você usa atributos para registrar um VSPackage, mas

Registrar um VSPackage

Você pode usar atributos para controlar o registro de VSPackages gerenciados. Todas as informações de registro estão contidas em um arquivo .pkgdef . Para obter mais informações sobre o registro baseado em arquivo, consulte CreatePkgDef utility.

O código a seguir mostra como usar os atributos de registro padrão para registrar seu VSPackage.

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

Cancelar o registro de uma extensão

Se você estiver experimentando com muitos VSPackages diferentes e quiser removê-los da instância experimental, basta executar o comando Redefinir . Procure Redefinir a instância experimental do Visual Studio na página inicial do computador ou execute este comando a partir da linha de comando:

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

Se você deseja desinstalar uma extensão que você instalou em sua instância de desenvolvimento do Visual Studio, vá para Extensões e atualizações de ferramentas>, localize a extensão e clique em Desinstalar.

Se, por algum motivo, nenhum desses métodos conseguir desinstalar a extensão, você poderá cancelar o registro do assembly VSPackage da linha de comando da seguinte maneira:

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

Usar um atributo de registro personalizado para registrar uma extensão

Em certos casos, talvez seja necessário criar um novo atributo de registro para sua extensão. Você pode usar atributos de registro para adicionar novas chaves do Registro ou para adicionar novos valores a chaves existentes. O novo atributo deve derivar de RegistrationAttribute, e deve substituir os Register métodos e Unregister .

Como criar um atributo personalizado

O código a seguir mostra como criar um novo atributo de registro.

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

O AttributeUsageAttribute é usado em classes de atributo para especificar o elemento de programa (classe, método, etc.) ao qual o atributo pertence, se ele pode ser usado mais de uma vez e se pode ser herdado.

Criar uma chave do Registro

No código a seguir, o atributo personalizado cria uma subchave personalizada sob a chave para o VSPackage que está sendo registrado.

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");
}

Criar um novo valor em uma chave do Registro existente

Você pode adicionar valores personalizados a uma chave existente. O código a seguir mostra como adicionar um novo valor a uma chave de registro 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");
}