MSI(MicroSoft Installer) 화일의 정확한 용도 ?
Windows Installer 설치 파일입니다.
윈도우 운영체제에서 말썽이 일어나는 원인 가운데 높은 비중을 차지하는 것이 프로그램
설치 과정에서 같이 설치되는 시스템 관련 파일들(주로 DLL)입니다. 윈도우에서는 DLL(=동적 링크 라이브러리)이라는 기능을 제공합니다. 아마 DLL 파일은 종종 보셨을텐데, 이 DLL 파일은 독립적으로 실행되는 실행 파일이 아니라 다른 실행 파일에서 호출해서 쓸 수 있는 실행 코드만이 들어 있는 파일입니다. 이 기능을 사용하여 여러 프로그램에서 공통적으로 쓰이는 실행 코드를 각각의 프로그램에 전부 놓지 않고 한 DLL에만 놓은 뒤 여러 프로그램들이 이 한 DLL에 접근하여 코드를 호출함으로써 메모리와 디스크 공간의 낭비를 막고 효율적으로 멀티 태스킹(윈도우에서는 동시에 여러 프로그램이 실행될 수 있는 것은 아시죠?)을 할 수 있게 해 줍니다.
그런데, 바로 DLL이 종종 말썽을 일으키는 경우가 있습니다. 예를 들면 a.dll을 사용하는 프로그램 A와 프로그램 B가 있다고 가정하고, 이미 내 컴퓨터에 프로그램 A를 설치해서 쓰고 있다고 가정합시다.
그런데 프로그램 B를 설치하고 이 과정에서 a.dll이 새롭게 설치되었는데, 처음에 있던 a.dll의 버전이 1이고 나중에 설치된 a.dll이 버전이 2일 경우, 프로그램 A는 버전 2에 있는 a.dll과 맞지 않아서 실행이 안되거나 에러를 일으킬 수 있습니다. 설치되는 프로그램이 많아지고 프로그램과 DLL, DLL과 DLL(한 DLL이 다른 DLL에 있는 실행 코드를 부를 수도 있습니다)의 관계가 점점 얽히면 점점 시스템이 불안해지고 잦은 에러를 일으킬 수도 있습니다.
또한 설치 도중에 어떤 이유로 에러가 일어나서 설치가 중단된 경우, 그때까지 설치되었던 파일들이 그대로 남아서 문제를 일으킬 수도 있고, 설치되었던 프로그램을 지울 경우에도 말끔히 지워지지 않고 남은 파일들이 문제를 일으킬 수도 있습니다. 이것을 보통 'DLL 지옥'(DLL hell)이라고 부릅니다. 윈도우 인스톨러는 이러한 문제점에 대한 해결 방안으로 MS에서 좀더 강력한 설치 지원을 위해서 만들어진 기술입니다. 윈도우 인스톨러는 다음과 같은 특징을 가지고 있습니다.
- DLL의 버전 체크를 통해서 위험 요소에 대한 경고를 하며, 중요한 시스템 파일이 함부로 바뀌는 것을 차단합니다.
- 설치가 중단된 경우, 롤백(rollback) 기능을 지원하여 설치 이전으로 완벽한 원상복구를 해 주며, 설치된 프로그램을 지울 경우에도 예전보다 훨씬 말끔하게 관련 파일들을 청소해 줍니다.
- 모든 파일을 설치 때 깔지 않아도, 설치된 프로그램에서 어떤 기능이 처음 실행될 때에야 그 기능에만 관련된 파일을 설치할 수 있도록 하는 부분 설치 기능을 지원하며 MS 인스톨러는 설치되지 않은 파일들에 관련된 기능이 처음으로 실행되는 것을 감지하여 파일 설치를 자동으로 권고하거나 수행합니다. 또한 CD-ROM과 같은 매체를 통한 설치 이외에도 네트워크와 인터넷을 통한 설치도 함께 지원합니다.
윈도우 인스톨러는 윈도우 2000, Me, XP에서는 기본 지원하며, 98 이하에서는 따로 윈도우 인스톨러를 설치해야 합니다. .msi는 윈도우 인스톨러 기능을 사용하는 설치 파일입니다. .msi 파일이 있는 경우에도 보통 setup.exe를 함께 제공하지만 이것은 단순히 .msi를 실행시키거나, 윈도우 인스톨러가 없는 경우를 감지하여 인스톨러를 설치하는 기능만을 합니다. 요즘은 대부분의 설치 프로그램들이 .msi 형식으로 배포되며, 이것이 전혀 없이 배포되는 프로그램은 윈도우 인스톨러가 아닌 방식으로 설치된다고 보시면 되겠습니다.
윈도우즈 시리즈를 만든 마이크로 소프트사는 설치 프로그램을 msi 파일로 바꾸어
가고 있습니다. 윈도우즈 XP는 msi 파일을 다룰 수 있지만 버전이 낮은 윈도우즈 시리즈는 '윈도우즈 인스톨'을 깔아야 합니다. 마이크로 소프트사의 윈도우즈 업데이트 사이트에서 윈도우즈 인스톨러를 깔 수 없다면 인터넷 자료실이나 PC 통신에서 'MS 윈도우 인스톨러(MSI) "Windows Installer" 2.0'을 검색해서 내려받아 깔면 됩니다.
출처 - http://blog.naver.com/nuloonggee/90149314682
'Development > Windows Programming' 카테고리의 다른 글
windows prog - 오디날(ordinal) error (0) | 2013.10.03 |
---|
new String(x.bad)
creates collection of Strings with 0-index-itemx.bad
value. Variant""+x.bad
, described by Simone works as desired - creates String value instead of Int32 – Dao Jul 30 '12 at 16:36