● 제목 :Visual Studio 2013과 MS Office Excel 간의 추가기능 호환성 문제
● 관찰된 증상:
엑셀 2013용 Smart Indenter 추가기능이 설치되지 않는 문제가 발생함
● 분석과정:
디버거를 사용해서 DLL파일의 COM객체를 등록시켜주는 regsvr32.exe 프로세스를 추적분석한 결과,
MSVBVM60.DLL에서 MSADDNDR.DLL을 호출한 직후 프로세스가 오류를 발생시킴을 발견함.
트레이싱 도중 DllRegisterDesigner 함수를 호출하는 코드를 발견했는데,
정작 MSADDNDR.DLL에는 해당함수가 존재하지 않음
● 원인확인:
인터넷 정보 검색결과, MS Visual Studio 2013에서 설치한 MSADDNDR.DLL 12.xx.xx. 버전 파일에
해당함수가 모두 빠져있다는 질답 문건을 입수했고
이에, 이전버전인 MSADDNDR.DLL 6.xx.xx 버전으로 교체한 결과
추가기능도 정상 동작됨을 확인함
● 추가정보:
해당 파일들은 모두 32비트용 파일/프로그램이었으며,
MSADDNDR.DLL파일을 교체할 경로는 아래와 같다.
C:\Program Files (x86)\Common Files\DESIGNER
C:\Program Files\Common Files\DESIGNER (32비트OS인 경우)
해당 추가기능은 VBSciript 편집창에서 자동 들여쓰기 기능을 구현해 주는 추가기능이다.
MS에서는 Visual studio 2013 Preview 버전부터 이미 해당 문제를 인지하고 있으나,
정식버전에서도 아직 수정되지 않고 있다.
● 참고자료:
http://connect.microsoft.com/VisualStudio/feedback/details/793386/msaddndr-dll-12-0-20617-1-installed-by-vs-2013-preview-breaks-setups-of-vba-add-ins