Share via


VSPackage 파일 위치를 VS Shell에 지정

Visual Studio는 VSPackage를 로드하기 위해 어셈블리 DLL을 찾을 수 있어야 합니다. 다음 표에 설명된 대로 다양한 방법으로 찾을 수 있습니다.

메서드 설명
CodeBase 레지스트리 키를 사용합니다. CodeBase 키를 사용하여 모든 정규화된 파일 경로에서 VSPackage 어셈블리를 로드하도록 Visual Studio에 지시할 수 있습니다. 키 값은 DLL에 대한 파일 경로여야 합니다. 이것은 Visual Studio에서 패키지 어셈블리를 로드하도록 하는 가장 좋은 방법입니다. 이 기술을 “CodeBase/프라이빗 설치 디렉터리 기술”이라고도 합니다. 등록하는 동안 코드베이스의 값은 RegistrationAttribute.RegistrationContext 형식의 인스턴스를 통해 등록 특성 클래스에 전달됩니다.
PrivateAssemblies 디렉터리에 DLL을 배치합니다. Visual Studio 디렉터리의 PrivateAssemblies 하위 디렉터리에 어셈블리를 배치합니다. PrivateAssemblies에 있는 어셈블리는 자동으로 검색되지만 참조 추가 대화 상자에는 표시되지 않습니다. PrivateAssembliesPublicAssemblies의 차이점은 PublicAssemblies의 어셈블리가 참조 추가 대화 상자에 열거된다는 점입니다. “CodeBase/프라이빗 설치 디렉터리” 기술을 사용하지 않도록 선택한 경우 PrivateAssemblies 디렉터리에 설치해야 합니다.
강력한 이름의 어셈블리 및 어셈블리 레지스트리 키를 사용합니다. 어셈블리 키를 사용하여 강력한 이름의 VSPackage 어셈블리를 로드하도록 Visual Studio에 명시적으로 지시할 수 있습니다. 키 값은 어셈블리의 강력한 이름이어야 합니다.
PublicAssemblies 디렉터리에 DLL을 배치합니다. 마지막으로, PublicAssemblies 하위 디렉터리에 어셈블리를 배치할 수도 있습니다. PublicAssemblies에 있는 어셈블리는 자동으로 검색되며 Visual Studio의 참조 추가 대화 상자에도 표시됩니다.

VSPackage 어셈블리는 다른 VSPackage 개발자가 다시 사용할 수 있는 관리형 구성 요소를 포함하는 경우에만 PublicAssemblies 디렉터리에 배치해야 합니다. 대부분의 어셈블리는 이 조건을 충족하지 않습니다.

참고 항목

모든 종속 어셈블리에 강력한 이름의 서명된 어셈블리를 사용합니다. 이 어셈블리는 고유한 디렉터리 또는 GAC(전역 어셈블리 캐시)에도 설치해야 합니다. 이렇게 하면 약한 이름 바인딩이라고 하는 동일한 기본 파일 이름을 가진 어셈블리와 충돌하는 것을 방지합니다.