.tlb를 .net 어셈블리 DLL에 리소스 파일로 포함시키는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/417803

  •  03-07-2019
  •  | 
  •  

문제

우리는 COM (CCW)을 통해 기본 C ++ 내에서 .NET 어셈블리 DLL을 사용하고 있습니다. DLL의 새 버전을 만들 때마다 코드에 사용하는 두 파일 (.dll 및 해당 .tlb)을 승무원에게 보내야합니다.

.tlb 파일을 .net dll 파일에 리소스로 포함시킬 수 있습니까?

도움이 되었습니까?

해결책

Visual Studio .NET 로이 작업을 수행하는 것은 정확하지는 않지만 수행 할 수 있습니다. 기본 수준에서해야 할 일은 다음과 같습니다.

  1. TLB 파일 (예 : "YourLibrary.tlb"를 생성하십시오.

  2. 예를 들어 텍스트 편집기 (예 : Notepad 또는 File/New/File .../visual Studio)를 사용하여 "YourLibrary.rc"라는 Win32 리소스 스크립트 파일을 만듭니다.

  3. 스크립트 파일에 다음 텍스트 verbatim을 입력하십시오 (그러나 실제 TLB 파일 이름을 대체) :

    1 typelib "Yourlibrary.tlb"

  4. 스크립트 파일을 TLB 파일과 동일한 폴더에 저장하십시오.

  5. Visual Studio 명령 프롬프트에서 스크립트 파일을 사용하여 폴더로 변경하고 다음 명령을 사용하여 컴파일합니다.

    RC YourLibrary.rc

    "YourLibrary.res"라는 동일한 폴더에서 Win32 리소스 파일이 생성됩니다.

  6. Visual Studio에서 솔루션 탐색기의 프로젝트 노드 (예 : "Yourlibrary")를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오.

  7. 응용 프로그램 탭에서 "자원"아래에서 "리소스 파일"옵션을 선택하고 5 단계에서 "YourLibrary.res"파일로 찾아보십시오.

  8. 프로젝트를 저장하고 재건하십시오.

TLB는 이제 다른 COM 응용 프로그램이 읽을 수 있도록 DLL의 리소스로 포함됩니다.

나중에 TLB 파일을 재생하면 리소스 파일을 다시 컴파일하려면 5 단계를 반복하고 DLL에 새 버전을 포함하려면 8 단계.

즉, 빌드 이벤트를 통해이 중 일부를 자동화하거나 사용자 정의 MSBuild 대상을 프로젝트 파일에 넣어서 자동화 할 수 있지만 이는 완전히 다른 토론입니다.

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