파이프라인 개발 요구 사항
업데이트: 2007년 11월
파이프라인 세그먼트와 추가 기능을 검색 및 활성화하려면 이들 항목이 지정된 범위, 특성 및 디렉터리 구조 요구 사항을 충족해야 합니다.
파이프라인 세그먼트 및 어셈블리
추가 기능, 계약 및 뷰는 public이어야 합니다. 어댑터 및 해당 생성자는 internal일 수 있습니다.
일반적으로 파이프라인 세그먼트는 해당 어셈블리에 포함되어 있지만 다음 세그먼트를 동일한 어셈블리에서 결합할 수도 있습니다.
추가 기능의 호스트 뷰 및 추가 기능측 뷰
호스트측 어댑터 및 추가 기능측 어댑터
호스트측 어댑터와 추가 기능측 어댑터를 동일한 어셈블리에서 결합하려면 먼저 해당 뷰를 동일한 어셈블리에서 결합해야 합니다.
파이프라인 한쪽의 세그먼트를 다른 쪽에 있는 세그먼트와 결합하는 경우(예: 추가 기능의 호스트 뷰와 추가 기능 뷰) 해당 어셈블리를 이 세그먼트에 대한 파이프라인의 양쪽에 배포해야 합니다.
뷰를 동일한 어셈블리에 결합하지 않는 경우에는 호스트와 추가 기능의 호스트 뷰를 동일한 어셈블리에서 결합할 수 있습니다.
특성 요구 사항
다음 파이프라인 세그먼트를 사용하려면 클래스에 이를 정의하는 특성이 필요합니다.
추가 기능에는 AddInAttribute가 필요합니다.
계약에는 AddInContractAttribute가 필요합니다.
추가 기능 뷰에는 AddInBaseAttribute가 필요합니다.
추가 기능측 어댑터에는 AddInAdapterAttribute가 필요합니다.
호스트측 어댑터에는 HostAdapterAttribute가 필요합니다.
추가 기능 파이프라인 세그먼트의 호스트 뷰에서는 개체가 AddInStore.FindAddIns(Type, String, array<String[]) 메서드에 전달되어 검색할 필요가 없으므로 특성이 필요하지 않습니다.
다음 그림에서는 필수 특성이 포함된 파이프라인 세그먼트를 보여 줍니다.
형식에 대한 필수 특성이 포함된 추가 기능 모델
파이프라인 디렉터리 요구 사항
.NET Framework에서 파이프라인 세그먼트를 검색하고 추가 기능을 활성화하려면 파이프라인 세그먼트를 지정된 디렉터리에 배치해야 합니다. 지정된 디렉터리 이름은 필수 항목이지만 대/소문자를 구분하지는 않습니다. 파이프라인 루트 디렉터리의 이름(검색 메서드에 대해 제공)과 추가 기능이 포함된 하위 디렉터리의 이름은 지정하지 않아도 됩니다. 모든 지정된 세그먼트 이름은 파이프라인 루트에 속한 동일한 수준의 하위 디렉터리여야 합니다.
다음 그림에서는 이러한 디렉터리 요구 사항을 보여 줍니다.
추가 기능 개발에 필요한 디렉터리
다음 표에서는 필수 디렉터리 구조에 대해 설명합니다.
디렉터리 |
설명 |
---|---|
파이프라인 루트 |
파이프라인 세그먼트의 하위 디렉터리가 포함된 디렉터리입니다. 이 디렉터리는 이름을 반드시 지정할 필요가 없으며 어느 위치에든 있을 수 있습니다. 예: ..\Pipeline |
AddIns |
선택적 요소. 각각 추가 기능을 포함하는 하나 이상의 하위 디렉터리가 있는 디렉터리입니다. 이 디렉터리의 이름은 AddIns로 지정해야 합니다. 예를 들면 ..\Pipeline\AddIns 같은 형식입니다. 추가 기능을 시스템의 다른 위치에 둘 수 있습니다. |
AddInSideAdapters |
추가 기능측 어댑터 어셈블리가 포함된 디렉터리입니다. 이 디렉터리의 이름은 AddInSideAdapters로 지정해야 합니다. 예를 들면 ..\Pipeline\AddInSideAdapters 같은 형식입니다. |
AddInViews |
추가 기능 뷰 어셈블리가 포함된 디렉터리입니다. 이 디렉터리의 이름은 AddInViews로 지정해야 합니다. 예를 들면 ..\Pipeline\AddInViews 같은 형식입니다. |
Contracts |
계약 어셈블리가 포함된 디렉터리입니다. 이 디렉터리의 이름은 Contracts로 지정해야 합니다. 예를 들면 ..\Pipeline\Contracts 같은 형식입니다. |
HostSideAdapters |
호스트측 어댑터 어셈블리가 포함된 디렉터리입니다. 이 디렉터리의 이름은 HostSideAdapters로 지정해야 합니다. 예를 들면 ..\Pipeline\HostSideAdapters 같은 형식입니다. |
AddInStore.Update 및 AddInStore.Rebuild 메서드에는 파이프라인 루트 또는 PipelineStoreLocation 값을 나타내는 문자열 변수를 받는 오버로드가 있습니다. 이러한 메서드는 시스템에서 사용 가능한 추가 기능 및 파이프라인 세그먼트를 검색하고 정보 저장소에 캐시된 정보를 관리합니다. 검색 메서드에 대한 자세한 내용은 추가 기능 검색을 참조하십시오.
호스트 응용 프로그램과 추가 기능 파이프라인 세그먼트의 호스트 뷰는 대개 어디에든 있을 수 있는 동일한 디렉터리에 배포됩니다. 호스트 응용 프로그램에는 활성화할 추가 기능을 나타내는 추가 기능 세그먼트의 호스트 뷰에 대한 참조가 필요합니다.
파이프라인은 Visual Studio 솔루션의 디렉터리 구조를 포함하여 어느 위치에든 있을 수 있습니다. 파이프라인 세그먼트는 파이프라인의 해당 디렉터리에 복사해야 합니다. 파이프라인 디렉터리와 해당 하위 디렉터리는 여러 파이프라인을 포함할 수 있습니다. 다양한 파이프라인 시나리오에 대한 자세한 내용은 추가 기능 파이프라인 시나리오를 참조하십시오.
다른 위치의 추가 기능
추가 기능을 반드시 파이프라인 디렉터리 구조에 둘 필요는 없습니다. 하지만 추가 기능이 파이프라인 디렉터리 구조가 아닌 다른 위치에 있는 경우 추가 기능의 포함 디렉터리에 대한 경로를 매개 변수로 사용하는 AddInStore.UpdateAddIns 메서드나 RebuildAddIns 메서드를 호출해야 합니다.
또한 AddInStore.FindAddIns 메서드를 호출할 때는 addInPaths 매개 변수를 포함해야 합니다.
호스트 응용 프로그램에서 추가 기능의 경로와 전체 형식 이름을 인식하고 있는 경우 FindAddIn 메서드를 사용하여 특정 추가 기능을 찾아 파이프라인 디렉터리 구조에 대한 쿼리가 발생하지 않도록 할 수 있습니다. 그러나 파이프라인 디렉터리 구조는 여전히 필수 항목입니다.
Visual Studio의 파이프라인 세그먼트 참조
계약 세그먼트에 대한 참조를 필요로 하는 추가 기능측 어댑터 등의 다른 파이프라인 세그먼트에 프로젝트의 참조를 추가하는 경우 어셈블리 대신 해당 세그먼트의 프로젝트에 대한 참조를 만듭니다. 이 예제에서 참조의 대상은 계약 프로젝트입니다. 프로젝트 참조는 참조된 어셈블리가 파이프라인에 배포되지 않도록 하여 충돌을 막아 줍니다. 파일을 로컬에서 복사하지 않는 방식으로도 충돌을 막을 수 있습니다.
프로젝트 참조를 추가하려면
솔루션 탐색기에서 참조 폴더를 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택합니다.
프로젝트 탭에서 원하는 프로젝트를 선택한 다음 확인을 클릭합니다.
참조 폴더에서 방금 추가한 프로젝트 참조를 클릭합니다.
참조 속성에서 로컬 복사를 False로 설정합니다.
필수 참조
다음 표에서는 System.AddIn.dll 및 System.Contract.dll에 대한 어셈블리 참조를 필요로 하는 파이프라인 세그먼트를 보여 줍니다. 일부 세그먼트에는 컴파일된 다른 세그먼트에 대한 참조도 필요합니다.
파이프라인 세그먼트 |
어셈블리 및 프로젝트 참조 |
네임스페이스 및 형식 참조 |
---|---|---|
계약 |
System.AddIn.dll System.AddIn.Contract.dll |
System.AddIn.Pipeline System.AddIn.Contract |
추가 기능 뷰 |
System.AddIn.dll |
System.AddIn.Pipeline |
추가 기능측 어댑터 |
System.AddIn.dll System.AddIn.Contract.dll 추가 기능 뷰 세그먼트 계약 세그먼트 |
System.AddIn.Pipeline |
호스트측 어댑터 |
System.AddIn.dll System.AddIn.Contract.dll 호스트 뷰 세그먼트 계약 세그먼트 |
System.AddIn.Pipeline |
호스트 |
System.AddIn.dll 호스트 뷰 세그먼트 |
System.AddIn.Hosting 호스트 뷰 |
추가 기능 |
System.AddIn.dll 추가 기능 뷰 세그먼트 |
System.AddIn 추가 기능 뷰 |
추가 기능의 호스트 뷰에는 참조 요구 사항이 없지만 호스트 응용 프로그램의 경우에는 있습니다.
Visual Studio의 파이프라인에 배포
Visual Studio에서는 출력 빌드 경로를 변경하여 파이프라인 세그먼트를 파이프라인 디렉터리로 빌드할 수 있습니다.
Visual Studio의 파이프라인에 배포하려면
도구 메뉴에서 프로젝트의 속성을 가리킨 다음 빌드 탭을 선택합니다.
파이프라인 세그먼트의 출력 경로를 파이프라인 디렉터리 구조의 해당 디렉터리로 변경합니다.
호스트 응용 프로그램과 호스트 뷰는 대개 같은 디렉터리에 배포됩니다. 파이프라인 디렉터리는 어디에든 있을 수 있지만 대개 호스트 응용 프로그램과 동일한 디렉터리에 있습니다.