응용 프로그램 재배포 및 특정 라이브러리에 바인딩

업데이트: 2008년 7월

Visual Studio 라이브러리는 릴리스 이후에도 업데이트될 수 있습니다. 예를 들어 서비스 팩을 설치할 때 라이브러리가 업데이트될 수 있습니다. 업데이트된 라이브러리를 사용하도록 디자인된 응용 프로그램에서는 최신 릴리스에 적용된 일부 변경 내용을 사용할 수 있습니다. 이러한 경우 동일한 라이브러리를 설치하지 않은 사용자에게 응용 프로그램을 전송하면 응용 프로그램이 예기치 않게 동작합니다. 응용 프로그램을 특정 라이브러리 버전에 바인딩하면 이러한 예기치 않은 동작을 방지할 수 있습니다.

기본 바인딩 동작

이 단원에서는 Visual C++ 2008 이후 릴리스로 컴파일된 응용 프로그램의 기본 동작에 대해 설명합니다. 응용 프로그램을 컴파일하면 해당 응용 프로그램은 라이브러리의 사용 가능한 최초 릴리스 버전에 바인딩됩니다. 이는 컴퓨터에 최신 릴리스가 설치되어 있는 경우에도 마찬가지입니다. 예를 들어 컴퓨터에 Visual C++ 2008 SP1이 설치되어 있는 경우라 해도, 이 컴퓨터에서 컴파일하는 모든 응용 프로그램은 Visual C++ 2008의 최초 릴리스 버전을 사용합니다.

응용 프로그램을 중앙 위치에 설치하여 배포할 때는 이 동작으로 인한 영향이 없습니다. 이 배포 체계를 사용하면 최종 사용자가 항상 최신 라이브러리를 사용할 수 있습니다. 그러나 방법: XCopy를 사용하여 배포 항목에 설명된 것처럼 전용 어셈블리와 같은 로컬 배포 방법을 사용할 경우에는 이 동작이 중요합니다.

기본 바인딩 동작을 사용하면 새 릴리스를 가져온 이후에 프로그램을 다시 컴파일하고 새 실행 파일을 배포할 수 있습니다. 이 경우 필요한 라이브러리를 이미 설치한 최종 사용자는 새 실행 파일만 있으면 되기 때문에 최신 라이브러리를 패키징하고 다시 설치하지 않아도 됩니다.

참고:

응용 프로그램에서 최신 릴리스에 도입된 기능을 사용할 경우 새 라이브러리를 배포하고 다시 설치하지 않으면 응용 프로그램이 실행되지 않습니다.

특정 버전에 바인딩하는 방법

컴퓨터에 최신 라이브러리가 설치되어 있어야 응용 프로그램이 실행되도록 하려면 다음 코드 줄을 하나 이상 사용하십시오.

#define _BIND_TO_CURRENT_CRT_VERSION 1;
#define _BIND_TO_CURRENT_ATL_VERSION 1;
#define _BIND_TO_CURRENT_MFC_VERSION 1;
#define _BIND_TO_CURRENT_OPENMP_VERSION 1;

다음 코드 줄을 사용하여 응용 프로그램을 모든 Visual C++ 라이브러리의 최신 버전에 바인딩합니다. 이 코드 줄은 위에 나온 코드 줄을 모두 결합한 것입니다.

#define _BIND_TO_CURRENT_VCLIBS_VERSION 1;
참고:

이러한 매크로는 명령줄 수준에서 정의하는 것이 좋습니다. 코드에 설명을 포함하려면 stdafx.h의 첫 번째 줄과 같이 각 컴파일 단위의 첫 부분에 추가해야 합니다.

응용 프로그램을 라이브러리 집합에 바인딩하면 해당 라이브러리의 이전 버전이 설치된 컴퓨터에서는 응용 프로그램이 실행되지 않습니다. 응용 프로그램을 특정 최소 버전에 바인딩한 경우에는 응용 프로그램을 필요한 라이브러리 버전과 함께 제공하는 것이 좋습니다.

참고 항목

개념

Visual C++ 파일 재배포

변경 기록

날짜

변경 내용

이유

2008년 7월

항목이 추가되었습니다.

SP1 기능 변경