Microsoft MVP성태의 닷넷 이야기
오류 유형: 78. Windows Vista/2008에서의 MSXML4.cab 파일 배포 문제 [링크 복사], [링크+제목 복사],
조회: 28517
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 


Windows Vista/2008에서의 MSXML4.cab 파일 배포 문제


현재 시점에서, Vista/2008의 운영체제에서 MSXML4.cab 파일 설치가 SP2 이전 버전에 대해서 설치 거부를 하고 있습니다. 즉, 다음과 같이 인터넷 익스플로러에서 반복적인 설치 정보만이 뜨고 있습니다.

[그림 1: MSXML4 ActiveX 반복 설치]
msxml4_cannot_be_installed_on_win2008_1.png

설치 시도를 해도 별다른 에러 없이 넘어가지만 사실상 설치가 안 되어서 MSXML4에서 제공되는 인터페이스를 사용하려고 하면 오류가 발생합니다. (물론, 레지스트리에도 "88d969c0-f192-11d4-a65f-0040963251e5"에 해당하는 CLSID가 없습니다.)

관련해서 "saltynut" 님의 검색 결과 SP2 이전까지는 이런 문제가 발생하고 있으며 새롭게 나온 SP3에서는 해결되었다고 합니다.

그래서 현재는 SP3을 사용해야 하는 것인데,

MSXML4 SP3 Is Available Now!
; http://blogs.msdn.com/xmlteam/archive/2009/03/06/msxml4-sp3-is-available-now.aspx

위의 글에서도 나오지만, SP3 이후로는 더 이상 업데이트 계획이 없으며 심지어 SP2의 경우에는 지원 기간이 2009년 11월까지라고 합니다. 글에서도 나오지만 웬만하면 ^^ MSXML6으로 넘어가라고 하고 있는데.

그래도 MSXML6으로 넘어가려면 관련 CLSID가 바뀌어서 지금 당장 오류가 나는 부분을 수정하려면 소스 코드 레벨보다는 패키징 레벨에서 수정할 수 있는 편이 더 쉽겠지요. 쉽다는 말이 어울릴 정도로 방법도 간단한데, MSXML4 SP3으로 바꾸려면 HTML 페이지에 있는 OBJECT 태그의 버전 번호와 서버 측에 배포된 MSXML4.cab파일을 SP3으로 다운로드한 파일로 교체해주면 됩니다.

Microsoft Core XML Services (MSXML) 6.0 Service Pack 1
; http://www.microsoft.com/downloads/details.aspx?FamilyID=d21c292c-368b-4ce1-9dab-3e9827b70604&displaylang=en

CAB 파일 교체는 단순히 다운로드한 파일로 처리해주면 되는데, 버전 번호는 어떻게 교체할까요? msxml4.dll의 속성창에서 얻거나, 혹은 아래와 같이 CAB 파일 안에 있는 INF 내에 지정된 버전 번호로 알아낼 수 있습니다.

[Add.Code] 
msxml4.dll=msxml4.dll 
msxml4r.dll=msxml4r.dll 

[msxml4.dll] 
file-win32-x86=thiscab 
clsid={88d969c0-f192-11d4-a65f-0040963251e5} 
FileVersion=4,30,2100,0,0 
DestDir=11 
RegisterServer=yes 

[msxml4r.dll] 
file-win32-x86=thiscab 
DestDir=11 
FileVersion=4,30,2100,0,0 

이렇게 찾은 버전번호를 HTML 파일에 있는 기존 번호와 교체해주면 됩니다.

<object id="MSXML4" style="DISPLAY: none" 
codeBase="msxml4.cab#version=4,30,2100,0,0" type="application/x-oleobject"
classid="clsid:88d969c0-f192-11d4-a65f-0040963251e5">
</object>

그렇게 하고 나면 아래와 같이 명시적으로 "MSXML 4.0 SP3"이라는 제목으로 확인이 가능합니다.

[그림 2: MSXML 4.0 SP3설치]
msxml4_cannot_be_installed_on_win2008_2.png


그런데, 막상 적용하고 나니 그래도 여전히 반복 설치 현상은 계속되었습니다. 심지어는 다음과 같은 오류도 발생하기도 합니다.

[그림 3: msxml4.dll 설치 오류]
msxml4_cannot_be_installed_on_win2008_3.png

"
msxml4.dll 파일을 복사하는 동안 오류가 발생했습니다.
파일을 대상 디렉토리로 복사할 수 없음.
작업을 다시 시도하려면 [다시 시도]를 클릭하거나, 취소
"



아마도 기존 버전의 설치 과정에서 설치된 파일들과 충돌이 나는 것 같은데 이런 경우에는 "C:\Windows\Downloaded Program Files"에 있는 MSXML4.cab 파일의 내용을 깨끗이 삭제하고 설치하거나, IE를 관리자 권한으로 실행해서 설치하면 됩니다.



[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 4/10/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 151  152  153  154  155  [156]  157  158  159  160  161  162  163  164  165  ...
NoWriterDateCnt.TitleFile(s)
1146정성태10/12/201133037.NET Framework: 247. LINQ에서의 Max 기능 구현 [10]파일 다운로드1
1144정성태10/10/201128740.NET Framework: 246. WCF - 서버 측에서의 유효한 Timeout 설정파일 다운로드1
1143정성태10/9/201134356.NET Framework: 245. ASP.NET 서버 측 코드에서 페이스북 계정 연동하는 방법
1142정성태10/8/201134833.NET Framework: 244. 윈도우 폼을 열고 닫는 것만으로 메모리 leak이 발생할까? [2]파일 다운로드1
1141정성태10/7/201133446.NET Framework: 243. DataTable에 대해서 Dispose 메서드를 호출할 필요가 있을까? [4]파일 다운로드1
1140정성태10/6/201126583.NET Framework: 242. 닷넷 개발자 입장에서 이해해 보는 자바의 서블릿, JSP
1138정성태10/1/201144258Java: 11. 웹 로직에서 MS-SQL 서버 연결 [2]
1137정성태9/30/201129820Java: 10. 닷넷 개발자가 설치해 본 Oracle WebLogic Server - 설치 및 기본 도메인 구성
1136정성태9/29/201125238개발 환경 구성: 131. Visual Studio - ASP.NET의 Code-behind처럼 cs 파일을 그룹핑하는 매크로 함수 [2]파일 다운로드1
1135정성태9/29/201122699오류 유형: 138. TF10216: Team Foundation services are currently unavailable
1134정성태9/27/201130153.NET Framework: 241. C# 5.0에 새로 추가된 Caller Info 특성 [5]
1133정성태9/25/201133445VC++: 54. C++로 만든 WinRT 프로그램 [2]
1132정성태9/24/201172914Java: 9. 자바의 keytool.exe 사용법과 Tomcat의 SSL 통신 설정
1131정성태9/23/201129103Java: 8. 닷넷 개발자가 구현해 본 자바 웹 서비스 (2)
1130정성태9/23/201137104Java: 7. 닷넷 개발자가 구현해 본 자바 웹 서비스 (1)파일 다운로드2
1129정성태9/22/201128787개발 환경 구성: 130. Hyper-V에 MS-DOS VM 만드는 방법 - MSDN 구독자 대상 [3]
1128정성태9/20/201128923오류 유형: 137. KB2449742 보안 업데이트로 인한 충돌 문제 해결 - 두 번째 이야기
1127정성태9/19/201132988Java: 6. Java에서 MySQL 사용 [2]
1126정성태9/18/201128114Math: 3. "유클리드 호제법"과 "Bezout's identity" 구현 코드(C#)파일 다운로드1
1125정성태9/17/201126044Windows: 54. Windows 8 개발자 Preview를 사용해 보고... [2]
1124정성태9/17/201126381.NET Framework: 240. System.Collections.ArrayList가 .NET 4.5에서 지원이 안된다??? [2]
1123정성태9/17/201165086Windows: 53. 2가지 모드의 Internet Explorer 10과 ActiveX [6]
1122정성태9/16/201132882Windows: 52. 새롭게 지원되는 WinRT 응용 프로그램 [7]
1121정성태9/12/201127568Java: 5. WTP 내에서 서블릿을 실행하는 환경
1120정성태9/11/201127483.NET Framework: 239. IHttpHandler.IsReusable 속성 이야기파일 다운로드1
1119정성태9/11/201126611Java: 4. 이클립스에 WTP SDK가 설치되지 않는다면? [2]
... 151  152  153  154  155  [156]  157  158  159  160  161  162  163  164  165  ...