VSPackage 파일 위치를 VS Shell에 지정
Visual Studio는 VSPackage를 로드하기 위해 어셈블리 DLL을 찾을 수 있어야 합니다. 다음 표에 설명된 대로 다양한 방법으로 찾을 수 있습니다.
메서드 | 설명 |
---|---|
CodeBase 레지스트리 키를 사용합니다. | CodeBase 키를 사용하여 모든 정규화된 파일 경로에서 VSPackage 어셈블리를 로드하도록 Visual Studio에 지시할 수 있습니다. 키 값은 DLL에 대한 파일 경로여야 합니다. 이것은 Visual Studio에서 패키지 어셈블리를 로드하도록 하는 가장 좋은 방법입니다. 이 기술을 “CodeBase/프라이빗 설치 디렉터리 기술”이라고도 합니다. 등록하는 동안 코드베이스의 값은 RegistrationAttribute.RegistrationContext 형식의 인스턴스를 통해 등록 특성 클래스에 전달됩니다. |
PrivateAssemblies 디렉터리에 DLL을 배치합니다. | Visual Studio 디렉터리의 PrivateAssemblies 하위 디렉터리에 어셈블리를 배치합니다. PrivateAssemblies에 있는 어셈블리는 자동으로 검색되지만 참조 추가 대화 상자에는 표시되지 않습니다. PrivateAssemblies 및 PublicAssemblies의 차이점은 PublicAssemblies의 어셈블리가 참조 추가 대화 상자에 열거된다는 점입니다. “CodeBase/프라이빗 설치 디렉터리” 기술을 사용하지 않도록 선택한 경우 PrivateAssemblies 디렉터리에 설치해야 합니다. |
강력한 이름의 어셈블리 및 어셈블리 레지스트리 키를 사용합니다. | 어셈블리 키를 사용하여 강력한 이름의 VSPackage 어셈블리를 로드하도록 Visual Studio에 명시적으로 지시할 수 있습니다. 키 값은 어셈블리의 강력한 이름이어야 합니다. |
PublicAssemblies 디렉터리에 DLL을 배치합니다. | 마지막으로, PublicAssemblies 하위 디렉터리에 어셈블리를 배치할 수도 있습니다. PublicAssemblies에 있는 어셈블리는 자동으로 검색되며 Visual Studio의 참조 추가 대화 상자에도 표시됩니다. VSPackage 어셈블리는 다른 VSPackage 개발자가 다시 사용할 수 있는 관리형 구성 요소를 포함하는 경우에만 PublicAssemblies 디렉터리에 배치해야 합니다. 대부분의 어셈블리는 이 조건을 충족하지 않습니다. |
참고 항목
모든 종속 어셈블리에 강력한 이름의 서명된 어셈블리를 사용합니다. 이 어셈블리는 고유한 디렉터리 또는 GAC(전역 어셈블리 캐시)에도 설치해야 합니다. 이렇게 하면 약한 이름 바인딩이라고 하는 동일한 기본 파일 이름을 가진 어셈블리와 충돌하는 것을 방지합니다.