문제

우리는 공통 공유 코드로 시작하는 두 개의 VSTO Outlook Addin을 가질 상황이 있지만 공유 코드는 시간이 지남에 따라 분기 될 것입니다. 이상적으로는 공통 코드를 별도의 공유 DLL로 고려하기 위해 추가 기능을 재구성하고 싶습니다. 그러나 기술적이지 않은 이유로 이것은 현재 옵션이 아닙니다. 동일한 Outlook 인스턴스에서 두 추가 기능을 모두 배포하면 어떤 문제가 예상됩니까? 동일한 이름과 동일한 네임 스페이스를 가진 두 개의 클래스가 있기 때문에 문제가 발생하지만 동일한 Outlook 인스턴스에 두 개의 다른 추가 기능이로드 된 다른 정의가 있습니까? 또한 애드 인 중 하나는 다른 추가 기능에서 양식을 호출해야합니다. 이것이 공동 코드의 차이에 문제가 될 것이라고 생각하십니까?

모든 공통 코드로 DLL을 분리하기 위해 추가 기능을 재구성 할 수 있다고 가정하면 Outlook은 두 개의 다른 추가 기능에 의해 배포되는 동일한 DLL의 다른 버전에 문제가 있습니까?

도움이 되었습니까?

해결책

내 현재 프로젝트는 Word에 대한 VSTO 애드 인간에 유사한 코드 공유를 수행했습니다. 지금은 컴파일 시간에 "Copy Local"과 함께 다른 프로젝트에 대한 참조를 사용하고 있지만 GAC에서 공유 코드를 참조하기 위해이를 전환하려면 재건이 필요한 공유 구성 요소를 구축하는 시나리오에서 해제됩니다. 그것에 의존하는 모든 프로젝트 중.

공유 라이브러리 DLL이 빌드 중에 "로컬 복사"인 경우 이름/네임 스페이스 충돌이 없어야하지만 공유 라이브러리 코드가 변경 될 때마다 추가 기능을 재건해야합니다. 빌드를 별도로 처리하려면 라이브러리 역할을하는 추가 기능을 작성하여 GAC에 자체 사본을 설치하여 다른 애드 인이 사용할 수 있습니다. 다른 애드 인에서 코드를 호출하는 방법을 보여주는 링크가 포함되어 있습니다. 실제로 VSTO가 사무실의 기본 코드 위에 .NET이기 때문에 약간 구피를 발견했습니다.

참조 :

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top