본문 바로가기

개발 관련

innosetup을 이용한 웹브라우저 plug-in 배포

1. DLL Comple

 

①. Resource 탭 > Version > MIMEType에 Version 표기

     application/mozilla-npruntime-scriptable-plugin,version=1.0.0.1

 

②. npp_gate.cpp에 존재하는 NPP_GetMIMEDescription 함수의 리턴 값도 MIME-Type과 같이 맞춰준다.

     char*
     NPP_GetMiMEDescription(void)
     {
         return "application/mozilla-npruntime-scriptable-plugin,version=1.0.0.1";
     }   


③. Release로 Complie > DLL 생성

 

 

2. ISTool & InnoSetup 이용한 install

 

①. 일단 InnoSetup을 설치하고 ISTool을 설치

(ISTool : Inno setup을 좀더 편하게 이용할 수 있는 GUI를 지원하는 서드파티 툴)

 

 - [1]의 첨부파일(04_Versioning.zip)의 iss 폴더 > NPRT_Setup.iss 참고

 - ISTool 사용법 : http://www.cyworld.com/SJoonho/3468436  참고

 

위 2개를 먼저 참고 할것,

 

 

②.  좌측 메뉴를 보면,

+ Script : 스크립트 코드 (다른 메뉴에서 수정하면 스크립트가 자동으로 수정됨)

 

+ Files and Dirs : 우클릭 메뉴의 'New Item' 클릭하여  File>Source에 1에서 컴파일한 'dll' 파일 추가

 

+ Icons : unistallexe 추가

 

+ Registry : Plug-in (dll)의 경로버전 등의 정보 설정 (아래 설명 참조)

 

 

더 이상의 메뉴는 건들지 않아도 됨

 

 

*** 어떻게 Plug-in을 배포할 것인가?

Plug-in (dll)을 모든 브라우저의 plugins 폴더에 복사할 것인가?

 

특정 폴더에 Plug-in 파일(dll)을 복사하고윈도우의 레지스트리 중 Mozilla Plugins을 통합적으로 관리하는 부분에 Plug-in 관련 정보를 추가해서, Mozilla Plug-in을 지원하는 모든 브라우저가 실행될 때복사해놓은 Plug-in 파일을 참조하도록 하면 된다.

 

그럼 이 방법에서 제일 중요한 레지스트리의 위치가 어디냐바로 아래와 같다.

 

HKEY_LOCAL_MACHINE\Software\MozillaPlugins

 

이 키의 아래에 @AppURL/MIME-Type 키를 생성하고, dll 파일의 경로버전설명 등 몇가지 정보를 등록 해주면브라우져에서 우리의 Plug-in을 인식하게 된다[1].

 

그런데,

윈도우 2000, XP 그 이상의 윈도우는 관리자 권한이 있어야만 HKEY_LOCAL_MACHINE 키에 쓸 수 있다.

HKEY_CURRENT_USER 키는 관리자 권한을 요구하기 않기 때문에 이 키에 쓰도록 한다.

어짜피, HKEY_CURRENT_USER 는 HKEY_LOCAL_MACHINE의 복사본이니까,

 

③. Complie & Run

 

컴파일(F9) 및 실행(F5)을 하면설정된 경로에 설치가 되고 레지스트리에 정보가 등록된다 (위그림)

FireFox, Opera, Safari에서 성공적으로 설치된 플러그인을 확인!!!

  

  

3. VC2008에서의 배포

 

vc2005부터 재배포 패키지(vcrest_x86.exe,..)가 필요하다. 그래서 아래와 같은 설정을 해준다.

먼저, ms에서 재배포 패키지를 다운 받는다. (vcredist_x86_sp1.exe)

[Files]
Source: D:\Xena\배포\vcredist_x86_sp1.exe; DestDir: {tmp}

[Run]
Filename: {tmp}\vcredist_x86_sp1.exe; Parameters: /q; StatusMsg: Installing 어쩌고 저쩌고 ...

 


 

 

 

<참조>

[1]. 전체적인 개요,

      http://breakstone.blog.qrobo.com/2009/11/26/npruntime-4-versioning/

[2]. 모질라 공식 사이트,

      https://developer.mozilla.org/en/Installing_plugins_to_Gecko_embedding_browsers_on_Windows

[3]. Mozilla 기반 웹 브라우저용 플러그인에 대한 자세한 정보는 PluginDoc을 방문해서 확인,

      http://plugindoc.mozdev.org/notes.html