>  기사  >  백엔드 개발  >  WiX를 사용하여 MSI 설치 중에 COM에 CPP DLL을 안정적으로 등록하려면 어떻게 해야 합니까?

WiX를 사용하여 MSI 설치 중에 COM에 CPP DLL을 안정적으로 등록하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-19 08:02:02710검색

How Can I Reliably Register a CPP DLL in COM During MSI Installation Using WiX?

Wix Msi 설치 프로그램을 사용하여 설치 후 COM에 CPP DLL 등록

문제: MSI 설치 중에 CPP 라이브러리가 COM에 등록되지 않습니다. , 다양한 접근 방식의 시도에도 불구하고.

해결책:

배치 파일 및 사용자 정의 작업 사용 중지:

배치 수동 실행 COM 등록을 위한 파일 및 사용자 정의 작업은 신뢰할 수 없습니다.

heat.exe를 사용하여 COM 등록 정보 추출

  1. WiX 툴킷의 heat.exe 도구를 사용하여 CPP dll에서 COM 등록 정보를 추출합니다.
  2. 추출된 레지스트리 데이터는 컴파일 시 MSI 데이터베이스를 채우는 데 사용되므로 설치 중 안정적인 COM 등록이 보장됩니다.

누락된 종속성 해결

COM 파일을 로드할 수 없는 이유는 종속성 누락으로 인해 발생하는 경우가 많습니다.

  1. Dependency Walker를 사용하여 COM 파일에서 누락된 종속성을 검색합니다.
  2. 등록 중에 액세스할 수 있도록 누락된 종속 파일을 COM dll과 함께 설치 디렉터리에 배치합니다.

heat.exe를 사용한 COM 추출 프로세스

  1. 로컬 폴더 또는 경로에 종속성이 있는 32비트 COM 파일의 경우 다음 명령을 사용하세요.

    heat.exe file YourFileName.ocx -o YourFileName.wxs
  2. 내보낸 WiX 레지스트리 데이터를 기본 WiX 소스에 통합하려면 , Wix(명령줄)에서 열 출력(wxs)을 참조하는 방법

64비트 바이너리

heat.exe 문서를 참조하세요. 64비트 COM 바이너리를 올바르게 처리하지 않습니다. WiX 확장 팩(상용) 사용 또는 자체 등록(권장하지 않음)을 고려해 보세요.

추가 팁

  • 높은 권한으로 등록을 시도하는지 확인하세요.
  • 배포 후 모든 종속성을 사용할 수 있을 때 heat.exe 명령이 COM 파일에서 실행되는지 확인하세요.
  • Dependency Walker 도구를 활용하여 누락된 종속성이나 오탐지를 파악하세요.

위 내용은 WiX를 사용하여 MSI 설치 중에 COM에 CPP DLL을 안정적으로 등록하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.