2017-12-04 23 views
3

두 클래스, ClassA 및 ClassB가있는 단일 DLL로 빌드하는 C# 프로젝트가 있습니다. 프로젝트 관리를 위해 ClassB를 별도의 DLL로 옮겨서 원래 DLL에 ClassA 만 남기고 싶습니다.원본 DLL을 참조하는 다른 DLL을 다시 컴파일하지 않고 .net DLL을 분할 할 수 있습니까?

문제는 원래 DLL에 ClassA와 ClassB를 참조하는 다른 DLL (C#에서 컴파일 됨)이 있다는 것입니다. ClassA는 괜찮지 만 ClassB를 호출하면 TypeLoadException이 발생합니다.

(나는 새로운 프로젝트 참조와 그 다른 모든 DLL을 다시 컴파일 할 수 있지만 오히려 프로젝트 관리 이유로 다시 그렇게 할 것입니다. )

내가 내 새를 배포 할 수있는 방법이 있나요 DLL을 분할하고 다른 DLL을 계속 사용할 수 있습니까? 아니면 속담을 물어보고이 모든 파일의 새 버전을 배포 할 계획입니까?

+0

추가 질문 : https://stackoverflow.com/q/47654493/3568 – billpg

답변

5

포워딩 유형을 사용하여이를 달성합니다. 이렇게하면 유형을 다른 어셈블리로 이동할 수 있습니다. 원래 어셈블리에서 TypeForwardedTo 특성을 추가하여 형식이 이동되었음을 알립니다.

자세한 내용은 link을 참조하십시오.

+0

해당 부분이 옮겨 졌음을 문서에 기록하고 새 프로젝트에서 새 어셈블리를 직접 참조해야합니까? 이 코드를 영원히 코드에 넣고 싶지는 않을 것이라고 생각합니다. – Fildor

+0

@Fildor 예, 팀의 설명서에이 코드를 추가하고 사용하는 코드를 추가하거나 변경하면 직접 새 위치를 사용합니다. 클래스. – Markus

+1

그건 완벽 해! 고맙습니다. – billpg