2014-02-11 7 views
1

내 현재 프로젝트에서 웹 응용 프로그램이 아닌 웹 페이지에서 큰 프로젝트의 하위 구성 요소를 분리하는 것으로 해결됩니다 (솔루션). Originaly 프로젝트는 Delphi에서 만들어졌으며 모든 하위 구성 요소는 모두 세분화되어 처리되지 않았습니다. C#으로 변환되면 결합 된 모든 하위 구성 요소가 이제 프로세스 중에 실행됩니다. 이렇게하면 너무 많은 의존성이 생기고 고객을 위해 프로젝트를 지원할 때 민첩한 개발 노력이 금지됩니다.오류 : 다음 메서드 또는 속성 사이에 모호한 호출입니다 ...

우리는 현재 프로젝트에서 사용 된 모든 기능에 대해 공통 리포지토리를 사용합니다. 현재 40 개 이상의 다른 구성 요소에 현재 분리중인 구성 요소가 포함되지 않습니다. 프로젝트의 청크에 대한 솔루션에서 개별 구성 요소를 분리하여 공통 파일을 사용하도록 변환하고 컴파일했습니다. 이제 그들은 각각 자신의 솔루션에 있습니다. 나는 마지막 구성 요소로 내려 갔고 이전에 분리 된 구성 요소를 참조합니다. 이것은 내 문제가있는 곳입니다 ...

모든 구성 요소는 동일한 공용 파일을 사용하고 동일한 네임 스페이스를 사용하며 모든 개별 솔루션에서 개별 프로젝트에 링크되어 있으므로 모호함이 있습니다. 어떻게 해결할 수 있을까요 ??

나는 인터넷에서 답변을 검색하고 비어 있습니다. 내가 발견 한 문제에 대한 가장 가까운 해결책은 별칭을 사용하는 것이 었습니다.

extern alias myExemHelper; myExemHelper :: FS.ExemHelper를 사용합니다.

하지만 문제는 해결되지 않습니다. 나는 또한 유닛에서 직접 컴포넌트를 참조하여 프로젝트에서 참조를 우회하려고 시도했다. 단위 테스트에서와 동일하지만 작동하지 않습니다.

또한 필자는 사무실의 다른 개발자들과상의 한 끝에 우연히 만난다. 모호성을 제거하기 위해 참조 된 구성 요소의 공통 요소를 공개하지 않을 수 있습니까 ??

도움을 주셔서 감사합니다.

+0

두 프로젝트에서 같은 클래스를 정의하지 마십시오. 그것은 문제의 처방이다. – SLaks

답변

1

일반적인 소스 파일을 사용하지 마십시오. 공통 소스 파일을 자신의 라이브러리에 넣고 프로젝트간에 컴파일 된 라이브러리를 공유하십시오.

+0

도움을 주셔서 감사합니다 !! 공통 단위가 많은 다른 구성 요소에 의해 사용되며 모든 추가 기능이 필요하지 않기 때문에 많은 불필요한 코드를 가지고 다니는 것을 피하려고합니다. 그러나 이것이 가능하지 않다면 나는 공통 라이브러리를 사용하여 브레이크 아웃을 완료해야 할 것입니다. – Mack