다음을 통해 공유


사용자 설정 지원

VSPackage는 사용자가 도구 메뉴에서 설정 가져오기/내보내기 명령을 선택할 때 유지되는 상태 변수 그룹인 하나 이상의 설정 범주를 정의할 수 있습니다. 이 지속성을 사용하려면 Visual Studio SDK의 설정 API를 사용합니다.

사용자 지정 설정 지점 및 GUID라고 하는 레지스트리 항목은 VSPackage의 설정 범주를 정의합니다. VSPackage는 각각 사용자 지정 설정 지점을 통해 정의된 여러 설정 범주를 지원할 수 있습니다.

  • IVsUserSettings 인터페이스를 사용하여 interop 어셈블리를 기반으로 하는 설정의 구현은 레지스트리를 편집하거나 등록자 스크립트(.rgs 파일)를 사용하여 사용자 지정 설정 지점을 만들어야 합니다. 자세한 내용은 Creating Registrar Scripts을 참조하세요.

  • MPF(Managed Package Framework)를 사용하는 코드는 각 사용자 지정 설정 지점에 대해 ProvideProfileAttribute를 VSPackage에 연결하여 사용자 지정 설정 지점을 만들어야 합니다.

    단일 VSPackage가 여러 사용자 지정 설정 지점을 지원하는 경우 각 사용자 지정 설정 지점은 별도의 클래스에 의해 구현되고 ProvideProfileAttribute 클래스의 고유한 인스턴스에 의해 등록됩니다. 따라서 클래스를 구현하는 설정은 둘 이상의 설정 범주를 지원할 수 있습니다.

사용자 지정 설정 지점 레지스트리 항목 세부 정보

사용자 지정 설정 지점은 다음 위치의 레지스트리 항목에서 만들어집니다. HKLM\Software\Microsoft\VisualStudio\<Version>\UserSettings\<CSPName>. 여기서 <CSPName>은 VSPackage에서 지원하는 사용자 지정 설정 지점의 이름이고 <Version>은 Visual Studio의 버전입니다(예: 8.0).

참고 항목

Visual Studio IDE(통합 개발 환경)가 초기화될 때 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<Version>의 루트 경로를 대체 루트로 재정의할 수 있습니다. 자세한 내용은 명령줄 스위치를 참조하세요.

레지스트리 항목의 구조는 다음과 같습니다.

HKLM\Software\Microsoft\VisualStudio\<Version>\UserSettings\

<CSPName>= s '#12345'

Package = '{XXXXXX XXXX XXXX XXXX XXXXXXXXX}'

Category = '{YYYYYY YYYY YYYY YYYY YYYYYYYYY}'

ResourcePackage = '{ZZZZZZ ZZZZ ZZZZ ZZZZ ZZZZZZZZZ}'

AlternateParent = CategoryName

이름 Type 데이터 설명
(기본값) REG_SZ 사용자 지정 설정 지점의 이름 키의 이름인 <CSPName>은 사용자 지정 설정 지점의 지역화되지 않은 이름입니다.

MPF를 기반으로 하는 구현의 경우 ProvideProfileAttribute 생성자의 categoryNameobjectName 인수를 categoryName_objectName으로 결합하여 키의 이름을 가져옵니다.

키는 비어 있거나 위성 DLL의 지역화된 문자열에 대한 참조 ID를 포함할 수 있습니다. 이 값은 objectNameResourceID 인수에서 ProvideProfileAttribute 생성자로 가져옵니다.
Package(패키지) REG_SZ GUID 사용자 지정 설정 지점을 구현하는 VSPackage의 GUID입니다.

ProvideProfileAttribute 클래스를 사용하는 MPF 기반 구현에서는 VSPackage의 Type 및 리플렉션이 포함된 생성자의 objectType 인수를 사용하여 이 값을 가져옵니다.
범주 REG_SZ GUID 설정 범주를 식별하는 GUID입니다.

interop 어셈블리를 기반으로 하는 구현의 경우 이 값은 Visual Studio IDE가 ExportSettingsImportSettings 메서드에 전달하는 임의로 선택된 GUID일 수 있습니다. 이 두 메서드의 모든 구현은 GUID 인수를 확인해야 합니다.

MPF를 기반으로 하는 구현의 경우 이 GUID는 Visual Studio 설정 메커니즘을 구현하는 클래스의 Type을 통해 가져옵니다.
ResourcePackage REG_SZ GUID 선택 사항.

구현하는 VSPackage가 제공하지 않는 경우 지역화된 문자열을 포함하는 위성 DLL의 경로입니다.

MPF는 리플렉션을 사용하여 올바른 리소스 VSPackage를 가져오므로 ProvideProfileAttribute 클래스가 이 인수를 설정하지 않습니다.
AlternateParent REG_SZ 이 사용자 지정 설정 지점이 포함된 도구 옵션 페이지 아래의 폴더 이름입니다. 선택 사항.

설정 구현에서 상태를 저장하는 자동화 모델의 메커니즘이 아닌 Visual Studio SDK의 지속성 메커니즘을 사용하는 도구 옵션 페이지를 지원하는 경우에만 이 값을 설정해야 합니다.

이 경우 AlternateParent 키의 값은 특정 ToolsOptions 페이지를 식별하는 데 사용되는 topic.sub-topic 문자열의 topic 섹션입니다. 예를 들어 ToolsOptions 페이지의 "TextEditor.Basic" 경우 AlternateParent 값은 "TextEditor"입니다.

ProvideProfileAttribute가 사용자 지정 설정 지점을 생성하는 경우 범주 이름과 동일합니다.