2014-01-24 8 views
2

빌드 프로세스의 일부로 여러 dll 및 tlb가 regsvr32를 통해 COM에 등록됩니다. dll과 tlb의 동일한 목록을 등록 해제하는 단계가 빌드의 끝에 있습니다. 그러나 빌드가 일찍 실패하면 해당 단계가 실행되지 않습니다.파일이없는 DLL 등록 해제

문제는 후속 빌드가 항상 동일한 빌드 경로를 사용하지 않는다는 것과 등록 된 dll이 잘못된 위치에 있는지 (이전 실패한 빌드의 COM에 등록되어 있기 때문에) 프로젝트 빌드가 실패한다는 것입니다.

단순한 해결책은 실패 또는 통과 여부와 관계없이 모든 빌드가 끝날 때 등록 스크립트가 실행되도록하는 것이지만이 방법은 빌드 도구로는 쉽지 않습니다. dll/tlb를 등록 된 경로에있는 원본 소스 파일없이 등록을 취소하는 다른 방법이 있습니까?

답변

1

등록한 것과 동일한 dll로 등록 해제를 호출 할 필요가 없으며 등록을 취소 한 dll이 DllRegisterServer 메소드에서 손실 된 dll 파일과 동일한 DllUnregisterServer 메소드에서 동일한 클래스를 제거한다는 것을 알아야합니다. .

이 점을 고려하여 새 경로에서 dll을 사용하여 이전 경로에서 DLL을 등록 취소 할 수 있어야합니다.

DLL을 등록하기 전에 등록 프로세스를 변경해보십시오. 올바른 DLL을 등록하기 전에 손실 된 DLL에 대한 매달린 참조를 정리하면 좋은 결과를 얻을 수 있습니다.