2014-03-19 1 views
2

"공통"프로젝트가 있습니다. 그것을 부르 자 : MyProject.Common 이 프로젝트에는 정적 변수과 함께 라이센스 클래스를 포함하는 Serials.Licensing 네임 스페이스가 있습니다.C# 다른 형식으로 참조 된 다른 병합 어셈블리의 동일한 유형 및 네임 스페이스

그래서이 공통 프로젝트의 구조가 될 것입니다 :

MyProject.Common (dll) 
| -> Serials.Licensing (namespace) 
    | -> License (class with static variables) 

IlMerge를 사용하여, 나는 두 개의 서로 다른 어셈블리의 (A.DLL, B.DLL)에서이 어셈블리를 병합합니다. 이 IlMerge와 함께이 생성 된 어셈블리의 결과가 될 것입니다 :

assemblyA (dll) 
    | -> Serials.Licensing (namespace) 
     | -> License (class with static variables) 

    | class "classA" using the License class of this dll 

그리고

assemblyB (dll) 
    | -> Serials.Licensing (namespace) 
     | -> License (class with static variables) 

    | class "classB" using the License class of this dll 

당신이 볼 수 있듯이, 두 어셈블리는 라이센스 클래스에 합병 사용하는 클래스 (를 ClassA, ClassB가)가 자신의 어셈블리

새 프로젝트 (projectC)에서 dll A와 dll B를 모두 참조하는 경우 클래스 라이선스의 정적 변수에 문제가 있습니까?

dll A와 dll B가 각각 "컨텍스트"를 갖고 있는지, 또는 네임 스페이스와 유형이 License 클래스의 정적 변수와 동일하기 때문에 문제가 있을지 모르겠다. .

+2

시도해 보셨습니까? –

+0

라이센스 범위는 어떻게됩니까? 네가 내부로 만들면 도움이되는거야? –

답변

0

유형에 액세스하려고하면 유형 라이센스가 A.dll 및 B.dll에 모두 있음을 알리는 컴파일 오류가 발생합니다. 그래서 그것은 당신을 위해 작동하지 않습니다. 형식에 액세스하지 않으면 프로젝트를 올바르게 컴파일해야합니다.

관련 문제