Visual C++ 2005 부터 Visual C++ 2005 가 설치되어 있지 않은 Windows 시스템에서 프로그램을 배포하려고 하면 "응용 프로그램 구성이 올바르지 않기 때문에 이 응용프로그램을 시작하지 못했습니다. " 와 같은 에러가 뜨는 경우가 종종 있다.

이 문제의 원인은 같은 이름의 dll 들이 서로 다른 버전을 가지고 있을 경우에 생기는 dll 충돌 문제를 방지하기 위해서 MS 가 제공하는 Side-by-side Assembly 때문에 발생하는 현상이다.
이 기능은 같은 컴퓨터에 여러가지 버전의 dll 이 설치되어 있는 경우에도 각각의 dll 들을 동시에 실행시켜 주는 기능이다. 즉. 각각의 애플리케이션에게 독립적인 DLL 환경을 보장해준다.
이 파일들은 \Windows\WinSxS 디렉토리에 존재한다.

이로 인해 Visual C++ 2005 부터는 프로그램 배포시에 Side-by-size dll 들을 함께 배포해야한다.

이 문제를 해결하는 가장 쉬운 방법은 MS 가 제공하는 Redistibutable package 를 설치한 후에 Visual C++ 2005 이상의 컴파일러로 빌드한 바이너리를 배포하는 것이다.

Microsoft Visual C++ 2008 Redistributable Package (x86)

덧) 위의 해결책은 "응용 프로그램 구성이 올바르지 않기 때문에 이 응용프로그램을 시작하지 못했습니다." 문제를 해결하는 방법 중 하나일 뿐이며, 실제로는 dll 관련된 다른 문제일 수도 있습니다.
게임 등 상용 프로그램의 실행시에 이런 문제를 겪는다면 최신 패치를 하거나 재설치를 해보는 것이 좋은 방법입니다.
AND