우리는 수년 동안 구축, 등록 및 실행해온 성숙한 C++ COM 코드베이스를 보유하고 있습니다. 여기에는 수많은 개발자 머신과 자동 빌드 머신이 포함됩니다.내 dll에있는 형식 라이브러리가 손상되었습니다 (등록시 TYPE_E_CANTLOADLIBRARY가 반환됩니다)?
코드베이스는 여러 dll과 exes를 만듭니다. 이들 중 일부는 COM 서버입니다.
전형적인 설정은 XP64 우리는 32 비트를 가지고 64 비트 빌드 비주얼 스튜디오 2005 년과 2008 년
을 모두 사용합니다.
갑자기 xp64 2005 자동 빌드 시스템이 작동하지 않습니다. 유일한 코드 변경은 C++ 도우미 메서드 내에서 사소한 변경과 일부 버전 번호에 대한 업데이트입니다.
우리가 볼 수없는 오류는 dll의 x64 릴리스 버전을 등록하지 못했기 때문입니다.
손상된 DLL로 인해 오류가 발생한 것 같습니다. dll이 성공적으로 빌드되지만 등록 시도가 TYPE_E_CANTLOADLIBRARY로 실패합니다.
dll에는 형식 라이브러리가 내장되어 있습니다 (rc 파일의 include 포함).
이 항상 전에 일을 아직도 VS 2005 XP64, 우리의 다른 컴퓨터에서 작동하고있다
2008 년 typelibrary의 IDL 소스가 볼 수있는 깨진 DLL의 바이너리를 검사 - 그것은 다른 위치에 있지만 DLL의 손상되지 않은 버전보다.
깨진 dll이 다른 컴퓨터에 등록되지 않습니다. 동일한 컴퓨터가 동일한 dll의 로컬 빌드를 성공적으로 등록합니다.
dll을 열 때 Oleview도 같은 오류로 실패합니다.
도움이 될만한 제안이나 사례가 있습니까?
나는 우리가 같은 것을 보았다고 생각하지만 해결책을 찾지 못했습니다. 우리의 빌드는 대부분의 경우 작동했지만, 때때로 정확한 방식으로 실패했습니다. 그것은 경로 길이 문제 였을 수도 있습니다. 감사합니다. –