'런타임'에 해당되는 글 1건

  1. 2008.12.15 VC2005로 개발한 프로그램 배포시 유의할 점

 

NeoZest 눈큰아이입니다.

VC++ 2005(8.0)으로 개발한 프로그램을 배포할 때 주의사항이 있습니다.

그중 하나가 VC++ 2005 Runtime Library인데, 이놈이 개발툴 이전에 나온 운영체제에서는 설치가 안되어있습니다.
그럼 어떻게 해야 하느냐? 마이크로소프트사에서 VC++ 2005 Runtime Library Redistribuable Package를 배포하고 있습니다.
이를 먼저 설치해야 합니다.

사용자에게 이 모듈을 직접 설치하라고 하면 좀 그렇죠?
그래서 인스톨러는 이 모듈이 설치되어있는지를 확인하고, 설치되어있지 않다면 먼저 이 패키지를 설치하는 과정을 거쳐야 합니다.

그럼 인스톨러입장에서 관건이 되는 것은 이 모듈이 설치되어 있는지 없는지를 어떻게 알아내느냐 하는 것이겠지요.
방법은 간단합니다.

레지스트리 값을 읽어보면 됩니다. 어떤 레지스트리 값이냐구요? 이게 플랫폼과 버전별로 차이가 있습니다.
기본 경로는 "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"입니다.
이 경로 아래에 다음과 같은 키 값이 있는지 없는지를 확인해 보면 됩니다.


* VC++ 2005

* x86: a49f249f-0c91-497f-86df-b2585e8e76b7
* x64: 6e8e85e8-ce4b-4ff5-91f7-04999c9fae6a
* ia64: 03ed71ea-f531-4927-aabd-1c31bce8e187

 

 
* VC++ 2005 + SP1

* x86: 7299052b-02a4-4627-81f2-1818da5d550d
* x64: 071c9b48-7c32-4621-a0ac-3f809523288f
* ia64: 0f8fb34e-675e-42ed-850b-29d98c2ece08


참 쉽죠?
그러나 막상 현업에서 꼼꼼하게 이를 처리하기는 어렵답니다.
우리회사에서 만든 컴포넌트 하나도 매번 설치할때마다 Runtime을 계속 설치하더라구요. :)


아..플랫폼을 어떻게 식별하느냐구요? 이것은 숙제로 내죠.. :) 다음 포스트에 공개하겠습니다.


Posted by NeoZest