다음을 통해 공유


방법: 사용자 지정 컨트롤 및 디자인 타임 어셈블리 배포

일반적으로 사용자 지정 WPF 및 Silverlight 컨트롤에 대한 디자인 환경을 만들 때와 비슷한 워크플로를 따릅니다. 이 항목에서는 사용자 지정 컨트롤 및 디자인 타임 어셈블리를 배포하는 방법을 설명합니다.

참고

사용자 지정 디자인 타임 환경을 구현하는 방법을 보여 주는 예제는 WPF and Silverlight Designer Extensibility Samples를 참조하십시오.

디자인 타임 어셈블리 만들기 및 배포

디자인 타임 어셈블리를 만들고 배포하려면

  1. 사용자 지정 WPF 또는 Silverlight 컨트롤을 구현합니다.

  2. 디자인 타임 구현에서 대상으로 하는 WPF Designer 프레임워크 버전을 결정하고 디자인 타임 어셈블리를 로드할 디자이너 도구를 결정합니다. 예를 들어 WPF Designer 프레임워크 버전 4를 대상으로 지정하고 Visual Studio 2010 이상 및 Expression Blend 3 이상에서 작동하는 디자인 환경을 만들 수 있습니다.

  3. 각 디자인 타임 어셈블리에 해당하는 프로젝트를 만듭니다. 사용자 지정 컨트롤 및 디자인 타임 어셈블리 배포에 설명된 규칙에 따라 프로젝트 이름을 지정합니다. 예를 들어 2단계의 시나리오에는 이름이 다음과 같은 프로젝트가 있을 수 있습니다.

    명명 규칙

    설명

    <ControlLibrary>.Design.4.0.dll

    일반 디자인 타임 구현입니다.

    <ControlLibrary>.Expression.Design.4.0.dll

    Expression Blend에 고유한 메타데이터로 일반 디자인 타임 구현을 재정의합니다.

    <ControlLibrary>.VisualStudio.Design.4.0.dll

    Visual Studio에 고유한 메타데이터로 일반 디자인 타임 구현을 재정의합니다.

  4. 각 디자인 타임 프로젝트의 빌드 출력을 일반 폴더에 출력합니다. 이 폴더는 사용자 지정 컨트롤이 들어 있는 폴더이거나 Design이라는 하위 폴더일 수 있습니다.

  5. IProvideAttributeTable 인터페이스를 구현하는 클래스를 각 디자인 타임 프로젝트에 추가합니다. 이 클래스의 이름은 보통 Metadata 또는 RegisterMetadata입니다. 사용자 지정 디자인 타임에 구현한 기능을 이 클래스에 지정합니다. 도구 상자의 항목 선택 대화 상자에 표시할 클래스를 지정할 수도 있습니다.

  6. ProvideMetadataAttribute를 각 디자인 타임 어셈블리에 적용하고 이를 사용하여 해당 RegisterMetadata 클래스를 지정합니다.

  7. AssemblyFoldersEx 등록 절차를 사용하여 컨트롤 및 관련 디자인 타임 어셈블리를 등록합니다. AssemblyFoldersEx는 타사 공급업체가 해당 공급업체에서 지원하는 각 프레임워크 버전의 경로를 저장하는 레지스트리 위치입니다. 디자인 타임 확인에서는 이 레지스트리 위치에서 참조 어셈블리를 검색합니다. 레지스트리 스크립트를 사용하여 도구 상자에 표시할 컨트롤을 지정할 수 있습니다. 자세한 내용은 사용자 지정 컨트롤 및 디자인 타임 어셈블리 배포를 참조하십시오.

참고 항목

참조

AttributeTable

ProvideMetadataAttribute

기타 리소스

사용자 지정 컨트롤 및 디자인 타임 어셈블리 배포

Visual Studio Extension Deployment

디자인 타임 메타데이터 제공

WPF Designer 확장성 이해

기본 확장성 개념

WPF and Silverlight Designer Extensibility Samples