2010-07-15 7 views
2

SSIS 구성 요소를 개발 중이며 2005 년과 2008 년 버전의 대상을 구축하는 동안 단일 소스 코드 기반을 유지 관리하는 방법을 찾고 있습니다. v2005 버전 포인트 사용 다른 .NET 에 대한SSIS 개발 구성 요소 : 하나의 소스, 여러 대상

  • 내 프로젝트의 참조 DLL의 v2008 이상 (즉, 같은 DLL을 다른 버전) :

    나는 두 부분으로 문제가 있습니다.
  • v2005에서 사용하는 클래스는 v2008에서 약간 다른 이름을 갖습니다 (동일한 기능과 공용 인터페이스를 가지고 있지만 조차도).

문제 1 다른 참조가있는 각 대상 버전에 대해 프로젝트 할 필요가 없습니다. 문제 2는 그렇게 쉬운 일이 아닙니다. 예를 들어 v2005 사용자 지정 속성 모음은 IDTSCustomPropertyCollection90이며 v2008 모음은 IDTSCustomPropertyCollection100입니다.

SSIS 2008에서 v2005 DLL을 사용하려고하면 -90 클래스를 찾을 수 없으며 SSIS 2005에서 v2008 DLL을 사용하려고하면 -100 클래스도 마찬가지입니다. 어떻게 작동합니까 이 클래스는 90/100을 제외하고 v2005 및 v2008 빌드에서 모두 동일합니다. 나는 C++로 코딩 된 경우

, 나는이 멀리 정사각형 # 정의하는 일련의 설정 거라고 .H 파일에 설정했던 :

#if defined(VS2005BUILD) 
    #define IDTSCustomPropertyCollection IDTSCustomPropertyCollection90 
#else 
    #define IDTSCustomPropertyCollection IDTSCustomPropertyCollection100 
#endif 

을하지만이하지 않는 것 C#에서 가능할 수 있습니다. 아이디어?

+1

누구나 궁금해 할 경우 # using (http://stackoverflow.com/questions/3418994/interface-inheritance-and-casting 내 다른 질문 참조)을 사용하여이 작업을 수행했습니다. –

+0

감사합니다. Marc! 나는 기다리고 있었고이 문제를 지켜보고 있었다. 다음 사람에게 호의를 베풀고 그 결과에 대한 대답을이 글에 (주석이 아님) 추가하고 대답으로 표시한다. –

답변

1

코드와 코드 사이에 다른 인터페이스를 사용하고 config 또는 다른 것으로부터 적절한 코드를로드 할 수 있습니다.

+0

필자는 래퍼 클래스 쌍을 작성하고 (이 문제가있는 몇 가지가 있음) 해당 빌드에 적합한 집합을 사용하는 것을 고려했습니다. 그러나이 문제를 가진 많은 수업이 있으며 더 쉬운 해결책을 기대하고있었습니다. –

관련 문제