2009-07-09 2 views
6

나는 Microsoft에서 제공 한 DLL을 사용하여 C#에서 클래스 라이브러리를 만들었습니다.C# ClassLibrary의 라이브러리를 정적으로 링크하는 방법은 무엇입니까?

이제 Microsoft에서 제공 한 라이브러리를 My Dll에 정적으로 추가하려고합니다. 어떻게하면됩니까? 나는 Microsoft에서 제공 한 DLL에 대한 참조를 추가하고 My Dll을 만들었습니까? 괜찮습니까?

다른 컴퓨터에서 DLL을 사용할 수 없다면 DLL이 실패 할 수 있습니다. 정적으로 라이브러리를 추가해야합니까 ??

어떻게하면됩니까 ??

+0

무엇을 수행하려고합니까? –

답변

6

.NET의 다른 어셈블리에 정적으로 링크하는 것과 같은 것은 없습니다. .NET linker과 같이 어셈블리를 하나로 병합하지만 지원되지 않는 일부 타사 제품이 있습니다.

해당 라이브러리의 재배포 라이센스가있는 경우 어셈블리와 함께 복사본을 제공 할 수 있습니다. Visual Studio에서는 해당 어셈블리 참조의 속성 창에서 "로컬 복사"를 "True"로 설정하여이 작업을 수행 할 수 있습니다.

3

실행시 dll을 사용할 수없는 경우; 예, 실패합니다. 그러나 :

  • 많은 마이크로 소프트 DLL은 .NET (주의 : "클라이언트 프로파일")에 사전 설치되어있는 마이크로 소프트의 DLL이 많은
  • 재배포이다; 패키지에 포함시킬 수 있습니다.

ILMerge이 유용 할 수 있지만 핵심 프레임 워크에 링커가 제공되지 않습니다.

0

당신이 달성하기를 바라는 것이 분명하지 않지만 클래스 라이브러리가 다른 컴퓨터에서 작동하는지 여부가 염려됩니다. 문제는 .Net 프레임 워크가 대상 컴퓨터에없는 경우 설치해야하는 무료 재배포 가능 파일이라는 것입니다. .Net 프레임 워크가 이미 컴퓨터에 설치되어 있기 때문에 아무런 문제가 없어야합니다.

Static linking은 .Net에서 의미가 없지만 다른 것은 프로젝트에 어셈블리 참조를 추가하는 것입니다. 도움이 되었으면 좋겠어요

+0

C++에서 dll을 정적으로 링크하면 exe와 dll을 하나의 파일에 결합하여 배포가 쉽고 제한된 환경에서 실행할 수 있습니다. –

관련 문제