Регистрация и отмена регистрации 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");
}