2014-02-27 1 views
1

Wix 설치 중에 COM에 등록 할 COM 라이브러리가 있습니다..dll을 COM에 등록하는 중 오류가 발생했습니다.

처음에는 heat 명령을 사용하여 정보를 수집하려고했지만 그 .dll에서 수확 된 것은 없습니다.

regsvr32.exe /s "RouteToMyLibrary/MyLibrary.dll" 

그리고 그것은 ... 제대로 설치 않은

그럼 내가 대신 CustomAction 사용하여 .DLL를 설치하기로 결정 : 그럼 수동으로 같은 regsvr32 명령을 사용하여 내 라이브러리가 잘못 생각하고 그것을 설치하려고 그것이 나를위한 해결책으로 보였던 것에 따라 수확의. 내 설치 프로그램이 출시 1722 실수를 실행할 때, 다음

<CustomAction Id="RegisterCOMLibrary" 
       Directory"DirIdOfWhereMyComLibraryIsLocated" 
       ExeCommand='regsvr32.exe /s "[DirIdOfWhereMyComLibraryIsLocated]MyLibrary.dll"'></CustomAction> 

<InstallExecuteSequence> 
    <Custom Action="RegisterCOMLibrary" After="InstallFinalize">NOT Installed</Custom> 
</InstallExecuteSequence> 

그러나 :

그래서 나는 CustomAction 다음 썼다.

나는 이런 log.txt를 작성하는 설치 프로그램을 실행합니다

msiexec /i MyInstaller.msi /l*v log.txt 

을 그리고 나는 1722 실수를 볼 수 있습니다. 참고 : 올바른 위치

    • 디렉토리 경로 포인트 나 IT가 COM 라이브러리 REGISTER 않습니다 로그에서 regsvr32 명령을 exctract하고, 그것을 실행하려고합니다.

    내가 뭘 잘못하고 왜 내가 ics에서이 자동 CustomAction을 사용하여 .dll을 등록 할 수 없는지에 대한 아이디어가 있습니까?

    참고 : 나는 heat file mylibrary.dll -out mylibrary.wxs을 할 때는 말한다 : 1722

    Could not harvest data from a file that was expected to be a SelfReg DLL... 
    
  • 답변

    1

    COM dll에 문제가 있거나 열 의존성이 없어서 heat.exe를 통해로드하지 못하는 것처럼 보입니다. 두 도움이 될 수 있습니다 도구 : 종속성 워커와 regspy :. 필 윌슨 등, 스테판 크루거의 http://installsite.org/tools page에서 다운로드에서

    RegSpy (프리웨어.) :

    스티브 밀러 ​​프리웨어

    Dependency Walker는()는 COM 데이터를 추출 할 수있는 경우

    먼저 결정 RegSpy 시도 DLL에서. 이 작동하지 않는 경우 종속성 워커를 사용하여 DLL이로드되지 못하게하는 누락 된 종속성이 있는지 확인하십시오. 이것들은 다른 dll이나 리소스 또는 이미지 나 언어 dll과 같은 리소스 파일 일 수도 있습니다 (리소스가있는 경우도 있습니다).

    이 두 도구를 실행 한 결과에 따라 dll에서 무언가를 수정하거나 모든 종속성을 적절히 사용하여 com 데이터 추출을 올바르게 수행해야 할 수 있습니다.

    일부 COM 파일은 실제로 미친 등록 중에 - TCP/IP의 네트워크 매개 변수를 변경하거나 신이 무엇을 알고 있는지 확인하십시오. 희귀하지만 COM 구성 요소의 심각한 디자인 오류. RegSpy는이를 나타낼 수 있지만 대부분 응용 프로그램을 다시 패키지하면 나타납니다.

    2

    오류가 바로 프로그램이이 경로의 문제가 아니에요 impying, 예기치 않게 완성을 의미한다. "정확한 경로"에 대한 아이디어는 Dll 또는 regsvr32 버전이 64 비트인지 32 비트인지에 따라 문제가 될 수 있습니다. 32 비트 Dll에서 64 비트 regsvr32를 실행하면이 문제가 발생할 수 있습니다. Windows가 사용자가 원하는 bits regsvr32와 그 위치를 자동으로 인식한다는 것은 나에게 분명하지 않습니다.

    간단한 답변은 열 수확 문제를 해결해야한다는 것입니다. 64 비트 Dll입니까?

    +0

    Phil, 64bit에서 RegSpy 도구를 사용해 본적이 없습니다. 아직도 작동합니까? EXE 파일에서 COM을 제대로 추출 할 수있는 유일한 도구입니다. –

    +0

    아직도 작동하는지 모르겠다. 죄송합니다. installsite.org에 업데이트 된 버전이 있으며 여전히 유지 관리 될 수 있습니다. – PhilDW

    관련 문제