Udostępnij za pośrednictwem


Rejestrowanie i wyrejestrowywanie pakietów VSPackage

Atrybuty służą do rejestrowania pakietu VSPackage, ale

Rejestrowanie pakietu VSPackage

Za pomocą atrybutów można kontrolować rejestrację zarządzanych pakietów VSPackage. Wszystkie informacje o rejestracji znajdują się w pliku pkgdef . Aby uzyskać więcej informacji na temat rejestracji opartej na plikach, zobacz CreatePkgDef narzędzie.

Poniższy kod pokazuje, jak używać standardowych atrybutów rejestracji do rejestrowania pakietu VSPackage.

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

Wyrejestrowywanie rozszerzenia

Jeśli eksperymentujesz z wieloma różnymi pakietami VSPackage i chcesz je usunąć z wystąpienia eksperymentalnego, wystarczy uruchomić polecenie Reset . Wyszukaj polecenie Resetuj wystąpienie eksperymentalne programu Visual Studio na stronie początkowej komputera lub uruchom to polecenie w wierszu polecenia:

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

Jeśli chcesz odinstalować rozszerzenie zainstalowane w wystąpieniu programistycznym programu Visual Studio, przejdź do pozycji Rozszerzenia narzędzi>i Aktualizacje, znajdź rozszerzenie i kliknij przycisk Odinstaluj.

Jeśli z jakiegoś powodu żadna z tych metod nie powiedzie się podczas odinstalowywania rozszerzenia, możesz wyrejestrować zestaw VSPackage z wiersza polecenia w następujący sposób:

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

Rejestrowanie rozszerzenia za pomocą atrybutu rejestracji niestandardowej

W niektórych przypadkach może być konieczne utworzenie nowego atrybutu rejestracji dla rozszerzenia. Możesz użyć atrybutów rejestracji, aby dodać nowe klucze rejestru lub dodać nowe wartości do istniejących kluczy. Nowy atrybut musi pochodzić z RegistrationAttributeklasy i musi zastąpić Register metody i Unregister .

Tworzenie atrybutu niestandardowego

Poniższy kod pokazuje, jak utworzyć nowy atrybut rejestracji.

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

Element AttributeUsageAttribute jest używany w klasach atrybutów do określania elementu programu (klasy, metody itp.), do którego odnosi się atrybut, czy może być używany więcej niż raz, i czy można go dziedziczyć.

Tworzenie klucza rejestru

W poniższym kodzie atrybut niestandardowy tworzy podklucz niestandardowy pod kluczem dla zarejestrowanego pakietu 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");
}

Tworzenie nowej wartości w ramach istniejącego klucza rejestru

Możesz dodać wartości niestandardowe do istniejącego klucza. Poniższy kod pokazuje, jak dodać nową wartość do klucza rejestracji pakietu 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");
}