헬마입니다.

회사에서 ActiveX 를 몇번 작업했는데

분명 버전업이 된걸로 새로 올려서 자동 업데이트가 되어야하는데 자동 업뎃이 안되더군요.

이리저리 방법을 찾다가 자동 업데이트를 하는 방법을 찾아서 이렇게 올려봅니다.

ActiveX 자동 업데이트 하는 방법

1. 프로젝트 리소스의 VERSIONINFO 리소스의 버전 정보를 수정한다.
 
  이때 FILEVERSION 과 PRODUCTVERSION 은 일치하는 것이 좋으며 버전정보는 , 로 구분되는 숫자 4개로 이루어져야함.
  예). 1,2,3,4
 
2. CAB 파일을 만들기 위한 INF를 작성한다.
 
  이때도 INF 에 버전정보를 적는데 VERSIONINFO 에 적은 버전정보와 같은 형식으로 , 로 구분하여 적는다.

  예).
 
  [TEST.ocx]
  file-win32-x86=thiscab
  ; *** add your controls CLSID here ***
  clsid={4132944C-862D-463F-BB47-ABF99043AB1C}
  ; Add your ocx's file version here.
  FileVersion=1,0,1,3
  RegisterServer=yes
 
3. CAB 파일을 생성 후 서버에 업로드 후 ActiveX 를 참조 하는 OBJECT 태그의 버전정보를 수정한다.

  이때 역시 버전정보는 , 로 구분되는 숫자 4개여야 함.

  예)
  <OBJECT id=Service classid="CLSID:3201944C-862D-463F-BB47-ABF99043AB1C" codebase="/Include/AutoUPOCX.CAB#version=1,0,1,3" width="0" height="0" type="application/x-oleobject">
  </OBJECT>
 
  따라서, 편한 버전 업데이트를 위해서는 ActiveX 를 참조하는 OBJECT 태그를 별도의 스크립트 파일로 분리하여 Include 하는 것이 관리하는데 도움을 줄 수 있음
 
 
4. IE는 서버에 새번이 있더라도 페이지에서 구버전을 요청하면 업데이트를 시행하지 않으므로 OBJECT 태그의 버전정보를 반드시 새버전으로 변경해야한다.

  또한, 구버전이 이미 로딩된 상태로 다음 페이지에서 새버전을 요구하면 업데이트 할 때 재부팅을 요구할 수 있으므로 반드시 ActiveX 가 처음 사용되는 페이지의 버전정보를 변경한다.

댓글을 달아 주세요

  1. BlogIcon 너남아라 2007.12.13 17:08 신고 Address Modify/Delete Reply

    헉~ 이건 넘 어려워서 ~ ㅎㅎ pass합니다.. !!

  2. 감사 2007.12.19 21:53 Address Modify/Delete Reply

    헬마님 emeditor7 정식버젼이 나왔네요.
    리팩좀 부탁드립니다.