본문 바로가기
개발

Visual C++ 2005 CRT DLL 버전 충돌 문제

by 솜씨제이 2008. 9. 30.

VS2005 CRT DLL(msvcp80.dll, msvcr80.dll)을 사용하는 COM 모듈을 개발할 때 설치 대상 PC에 .NET 2.0 SP1이나 .NET 3.0 SP1이 설치되어 있는 경우 COM 등록 시에 로드하는 CRT DLL 버전 8.0.50727.762를 side by side assemblies 기능에서 자동으로 8.0.50727.1433으로 리다이렉트해준다. 문제는 1433 버전으로 작동하는 경우 COM 등록이 안 되는 등의 에러가 발생한다. Isolated COM이나 Per-application Configuration(Windows XP, Windows Vista)으로도 해결할 수 있지만 가장 간단한 방법은 Private Assemblies로 항상 762 버전을 사용하도록 하는 것이다.

참고)
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.vc.mfc&tid=ab5bc68a-3bf1-4537-9285-5697048f13ed&cat=&lang=&cr=&sloc=&p=1

http://forums.msdn.microsoft.com/en-US/vcgeneral/thread/0f627804-d4d6-4606-bb2a-a5cc0516767d/

http://forums.msdn.microsoft.com/en-US/vcgeneral/thread/dc5c726b-4888-4c68-9a07-b63cdee937ea/

댓글