다음을 통해 공유


com4:SurrogateServer

하나 이상의 클래스 등록을 사용하여 SurrogateServer를 등록합니다.

요소 계층 구조

<패키지>

    <애플리케이션>

         <애플리케이션>

              <확장>

                   <com4:SurrogateServer>

구문

<com4:SurrogateServer
  CustomSurrogateExecutable = 'A string with a value between 1 and 256 characters in length that must end with ".exe" and cannot contain these characters: <, >, :, ", |, ?, or *.'
  DisplayName = 'A string with a value between 1 and 256 characters in length. This string is localizable.'
  LaunchAndActivationPermission = 'An [SDDL string](/windows/win32/secauthz/security-descriptor-string-format) value.'
  AppId = 'A GUID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.'
  SystemSurrogate = 'A string with the following optional value: "PreviewHost".' >

  <!-- Child elements -->
  Class
  InProcessServerClassReference
  ClassReference

</com4:SurrogateServer>

특성 및 요소

특성

attribute Description 데이터 형식 필수 기본값
CustomSurrogateExecutable AppId 키의 DllSurrogate 경로입니다. 이 경로는 패키지 루트를 기준으로 하며 패키지의 파일을 참조해야 합니다. 이는 SystemSurrogate에서 변경적으로 배타적입니다. 길이가 1~256자인 문자열로 끝나 .exe 야 하며 , , , ">:|?또는 *문자를 <포함할 수 없습니다. Yes
표시 이름 DisplayName은 기본 AppID 키 값에 해당하는 지역화 가능한 문자열입니다. 길이가 1~256자인 문자열입니다. Yes
LaunchAndActivationPermission AppID 키의 LaunchPermission 값에 해당하는 SDDL 문자열 입니다. SDDL 문자열 값입니다. Yes
AppId 연결된 AppId 키를 참조하는 AppId입니다. xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx 형식의 GUID입니다. Yes
SystemSurrogate AppId 키의 DllSurrogate 값에서 잘 알려진 값에 해당하는 값입니다. 이는 CustomSurrogateExecutable에서 변경적으로 배타적입니다. 선택적 값이 "PreviewHost"인 문자열입니다. Yes

자식 요소

자식 요소 설명
클래스 서로게이트 서버 클래스 등록을 정의합니다.
InProcessServerClassReference 관리되는 In-Process 서버가 연결된 클래스를 지정하고 등록 세부 정보를 설정합니다.
ClassReference 등록된 In Process 서버가 연결된 클래스를 지정하고 등록 세부 정보를 설정합니다.

부모 요소

부모 요소 Description
확장 앱에 대한 확장성 지점을 하나 이상 정의합니다.

설명

COM 레지스트리 레이아웃의 CLSID 키](/windows/win32/com/clsid-key-hklm)를 사용하면 다음을 지정하여 CLSID를 inproc 활성화(CLSCTX_INPROC_SERVER) 및 서로게이트 서버(CLSCTX_LOCAL_SERVER)의 outofproc 활성화에 등록할 수 있습니다.

  • InprocServer32 하위 키의 Inproc 활성화 세부 정보입니다.
  • AppID 키가 DllSurrogate 값을 통해 서로게이트를 지정하는 CLSID 키의 AppID 값을 통해 AppID 키에 대한 참조입니다. 서로게이트 서버에서 outofproc 활성화의 경우 inproc 서버 등록 세부 정보(예: dll 경로 및 ThreadingModel)도 outofproc 활성화에 사용됩니다. InProcessServer 요소의 ClassReference 자식은 inproc 및 outofproc 활성화 모두에 대해 CLSID를 등록하는 패키지를 사용하여 inproc 서버 세부 정보를 InProcessServer/Class 또는 InProcessServer/ClassReference 요소로 한 번 지정하고 CLSID의 outofproc 활성화를 지원하는 서로게이트 서버에서 이 요소를 참조할 수 있습니다. inproc/outofproc 등록에 대한 이 구조는 InProcessServer/ClassReference 및 SurrogateServer/ClassReference 요소 모두에서 dll 경로 및 ThreadingModel을 독립적으로 지정하는 것보다 COM 레지스트리 레이아웃을 더 밀접하게 반영합니다.

서로게이트 서버에서 outofproc 활성화를 위해 등록된 CLSID를 사용하여 애플리케이션을 패키징하는 경우 일반적으로 서로게이트 서버만 매니페스트에 등록하는 것이 좋습니다. 예를 들어 서로게이트 등록은 역사적으로 inproc 서버 구현을 사용하도록 설정했지만 이제는 격리를 위한 모범 사례로 outofproc 서버 등록을 권장하는 COM 기반 확장 지점을 지원하는 데 자주 사용됩니다. 패키지된 애플리케이션의 경우 inproc 서버에 대한 추가 기능 제한 사항이 있습니다(자세한 내용은 In-ProcessServers 참조). 반면 runFullTrust 제한된 기능이 있는 패키지는 서로게이트 서버를 성공적으로 등록할 수 있으며, 대부분의 확장 지점에서 서로게이트 서버를 등록하는 경우 확장 기능을 사용하도록 설정하기에 충분합니다. 그러나 패키지된 애플리케이션이 inproc activation(CLSCTX_INPROC_SERVER)을 요청하는 다른 애플리케이션과의 호환성을 위해 CLSID의 비효과적 활성화를 지원해야 하고, 비프로크 서버를 등록하기 위한 요구 사항을 충족해야 하는 경우 서로게이트에서 INproc 활성화 및 outofproc 활성화를 위해 CLSID를 등록할 수 있습니다. 이 경우 InProcessServer/Class 또는InProcessServer/ClassReference 요소에 inproc 서버 세부 정보를 제공하고, SurrogateServerInProcessServerClassReference/ 요소에서 참조하는 것이 좋습니다.

요구 사항

항목
Namespace http://schemas.microsoft.com/appx/manifest/com/windows10/4
Minimum OS Version Windows 10(빌드 20348)