Compartir a través de


Registro y anulación del registro de VSPackages

Los atributos se usan para registrar un VSPackage, pero

Registrar un VSPackage

Puede usar atributos para controlar el registro de VSPackages administrados. Toda la información de registro se incluye en un archivo .pkgdef . Para obtener más información sobre el registro basado en archivos, vea CreatePkgDef utility.

En el código siguiente se muestra cómo usar los atributos de registro estándar para registrar el VSPackage.

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

Anulación del registro de una extensión

Si ha estado experimentando con una gran cantidad de VSPackages diferentes y quiere quitarlos de la instancia experimental, simplemente puede ejecutar el comando Restablecer . Busque Restablecer la instancia experimental de Visual Studio en la página de inicio del equipo o ejecute este comando desde la línea de comandos:

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

Si desea desinstalar una extensión que haya instalado en la instancia de desarrollo de Visual Studio, vaya a Herramientas>Extensiones y Novedades, busque la extensión y haga clic en Desinstalar.

Si por algún motivo ninguno de estos métodos se realiza correctamente al desinstalar la extensión, puede anular el registro del ensamblado VSPackage de la línea de comandos de la siguiente manera:

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

Uso de un atributo de registro personalizado para registrar una extensión

En determinados casos, es posible que tenga que crear un nuevo atributo de registro para la extensión. Puede usar atributos de registro para agregar nuevas claves del Registro o para agregar nuevos valores a las claves existentes. El nuevo atributo debe derivar de RegistrationAttributey debe invalidar los Register métodos y Unregister .

Creación de un atributo personalizado

En el código siguiente se muestra cómo crear un nuevo atributo de registro.

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

AttributeUsageAttribute se usa en las clases de atributo para especificar el elemento de programa (clase, método, etc.) al que pertenece el atributo, si se puede usar más de una vez y si se puede heredar.

Creación de una clave del Registro

En el código siguiente, el atributo personalizado crea una subclave Personalizada bajo la clave para el VSPackage que se está registrando.

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

Creación de un nuevo valor en una clave del Registro existente

Puede agregar valores personalizados a una clave existente. En el código siguiente se muestra cómo agregar un nuevo valor a una clave de registro de 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");
}