VSPackage 등록 및 등록 취소

특성을 사용하여 VSPackage를 등록하지만

VSPackage 등록

특성을 사용하여 관리형 VSPackage 등록을 제어할 수 있습니다. 모든 등록 정보는 .pkgdef 파일에 포함되어 있습니다. 파일 기반 등록에 대한 자세한 내용은 CreatePkgDef 유틸리티를 참조하세요.

다음 코드는 표준 등록 속성을 사용하여 VSPackage를 등록하는 방법을 보여 줍니다.

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

확장 등록 취소

다양한 VSPackage를 실험했으며 실험 인스턴스에서 제거하려는 경우 다시 설정 명령을 실행하면 됩니다. 컴퓨터의 시작 페이지에서 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

Microsoft Visual Studio의 개발 인스턴스에 설치한 확장을 제거하려면 도구>확장 및 업데이트로 이동하여 확장을 찾은 다음, 제거를 클릭합니다.

어떤 이유로 이러한 방법 중 어느 것도 확장을 제거하지 못한 경우에는 다음과 같이 명령줄에서 VSPackage 어셈블리를 등록 취소할 수 있습니다.

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

사용자 지정 등록 특성을 사용하여 확장 등록

경우에 따라 확장에 대한 새 등록 특성을 생성해야 할 수도 있습니다. 등록 특성을 사용하여 새 레지스트리 키를 추가하거나 기존 키에 새 값을 추가할 수 있습니다. 새 특성은 RegistrationAttribute에서 파생되어야 하며 RegisterUnregister 메서드를 재정의해야 합니다.

사용자 지정 특성 만들기

다음 코드는 새 등록 특성을 만드는 방법을 보여 줍니다.

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

AttributeUsageAttribute은 특성이 속하는 프로그램 요소(클래스, 메서드 등), 두 번 이상 사용할 수 있는지 여부, 상속 가능 여부를 지정하기 위해 속성 클래스에 사용됩니다.

레지스트리 키 만들기

다음 코드에서 사용자 지정 특성은 등록 중인 VSPackage의 키 아래에 Custom 하위 키를 만듭니다.

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