프로그래밍

Visual Studio 2008 DLL파일 배포 방법

우진샘 2011. 9. 14. 17:31

"응용 프로그램 구성이 올바르지 않기 때문에 이 응용 프로그램을 시작하지 못했습니다. 이 문제를 해결하려면 응용 프로그램을 다시 설치하십시오."
또는
"This application has failed to start because the application configure is incorrect. Review the manifest file for possible errors. Reinstalling the application may fix the problem."


Visual Studio 2008에서 작성한 프로그램 실행시 위와 같은 메세지가 나올 경우가 있었다.
(VS 2005, VS 2010에서도 발생하는 것으로 알고 있다.)

이것은 DLL 버전이 맞지 않아 발생하는 문제이다.
해결 방법은 아래와 같다.

* 사용자측에서의 해결방안
 1. 해당 버전의 DLL을 찾아서 복사를 한다. (그닥 추천하지 않는다.)

 2. Microsoft 홈페지에서 버전에 맞는 Microsofot Visual C++ 2008 재배포 가능 패키지(x86)를 다운받아 설치한다. Service Pack 1 버전도 있다.
     http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF


* 개발자측에서의 해결방안
 1. 정적 링크를 이용하여 빌드한다. (용량이 커지긴하나 가장 간단한 방법임)

 2. 해당 DLL파일을 함께 배포하여 실행파일이 해당 DLL파일을 직접 사용하도록 한다.
    우선 이를 위해서는 실행파일의 manifest파일, DLL파일, DLL의 manifest파일이 필요하다.
    - 실행파일의 manifest파일은 obj파일이 생기는 곳에 "실행파일이름.exe.intermediate.manifest" 이렇게 생긴다.
    - Visual Studio 2008의 DLL파일과 manifest파일은 아래 디렉토리 플랫폼 별로 존재한다.

C:\Program Files\Microsoft Visual Studio 9.0\VC\redist

   본인은 아래 두 디렉토리의 DLL과 manifest파일을 사용하였다.

C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.MFC

    참고로 당연하겠지만 실행파일의 manifest파일에 있는 버전과 DLL의 manifest파일의 버전이 같아야 한다.


* 참고 할 만한 사이트