다음을 통해 공유


배포 방법 선택

대부분의 경우 Windows Installer 배포를 사용하여 Visual C++ 응용 프로그램을 배포합니다. Visual Studio 내에서 지원되는 배포 방법 및 대안에 대한 자세한 내용은 배포 전략 선택대체 배포 방법을 참조하십시오. Visual Studio 2010에서는 Visual C++ 네이티브 응용 프로그램을 ClickOnce로 배포하는 기능을 지원하지 않습니다. 그러나 명령줄에서 ClickOnce를 통해 Visual C++ 응용 프로그램을 배포할 수는 있습니다. 자세한 내용은 Visual C++ 응용 프로그램의 ClickOnce 배포를 참조하십시오.

공유 DLL로서의 Visual C++ 라이브러리

Visual Studio 2010은 Visual C++ 라이브러리를 %windir%\system32 디렉터리에 공유 DLL로 설치합니다. Visual C++가 설치되지 않은 컴퓨터에서 Visual C++ 응용 프로그램을 실행하려면 응용 프로그램과 함께 Visual C++ DLL을 재배포하여 대상 컴퓨터에 설치해야 합니다.

Visual C++ 라이브러리 재배포

세 가지 방법으로 Visual C++ DLL을 재배포할 수 있습니다.

  • Visual C++ 재배포 가능 패키지(VCRedist_x86.exe, VCRedist_x64.exe, VCRedist_ia64.exe)를 사용하여 모든 Visual C++ 라이브러리를 %windir%\system32에 공유 DLL로 설치하는 것이 좋습니다. Visual Studio는 이 패키지를 %WindowsSdkDir%\Bootstrapper\Packages 폴더에 설치합니다. Microsoft 다운로드 센터에서 다운로드할 수도 있습니다. 이 패키지를 사용하는 방법에 대한 예제는 연습: Visual C++ 재배포 가능 패키지를 사용하여 Visual C++ 응용 프로그램 배포를 참조하십시오.

  • Visual C++ 재배포 가능 병합 모듈을 사용하여 특정 Visual C++ 라이브러리를 %windir%\system32에 공유 DLL로 설치합니다. 이 폴더에 액세스하려면 관리자 권한이 있는 사용자가 설치 관리자 응용 프로그램을 실행해야 합니다. 자세한 내용은 병합 모듈을 사용하여 재배포를 참조하십시오. 이러한 배포 예제를 보려면 연습: 설치 프로젝트를 사용하여 Visual C++ 응용 프로그램 배포를 참조하십시오.

  • Program Files\Microsoft Visual Studio 10.0\VC\Redist 디렉터리에 제공된 파일을 사용하여 응용 프로그램과 동일한 폴더에 특정 Visual C++ DLL을 설치합니다. 관리자 권한이 없는 사용자가 응용 프로그램을 설치하는 경우나 공유 위치에서 응용 프로그램을 실행할 수 있어야 하는 경우 이 방법을 사용하는 것이 좋습니다.

재배포 가능 병합 모듈을 사용하여 Visual C++ 라이브러리를 설치할 때 DLL이 %windir%\system32에 공유 DLL로 배포됩니다. 이 폴더에 액세스하려면 관리자 권한이 있는 사용자가 설치 관리자 응용 프로그램을 실행해야 합니다.

관리자 권한이 없는 사용자가 설치를 실행하면 Visual C++ DLL이 배포되지 못하고 응용 프로그램이 실행되지 않습니다. 또한 일부 제품은 사용자별로 설치할 수 있지만 병합 모듈은 공유 위치에 라이브러리를 설치하므로 시스템의 모든 사용자에게 영향을 줍니다. 이 두 시나리오 및 유사한 시나리오에서는 필요한 DLL을 특정 사용자 응용 프로그램의 디렉터리에 설치하는 방법이 지원됩니다.

이 방법에서는 DLL을 응용 프로그램의 로컬 폴더로 복사하기만 하면 됩니다. 응용 프로그램을 실행할 때 운영 체제의 로더는 LoadLibraryEx에 설명된 검색 순서를 사용합니다.

Visual C++ 라이브러리를 잘못 재배포하면 이러한 라이브러리에 의존하는 응용 프로그램을 실행할 때 런타임 오류가 발생할 수 있습니다.

정적 링크 대비 동적 링크의 장점

Visual C++ 라이브러리에 정적으로 링크하는 C/C++ 응용 프로그램은 재배포하지 않는 것이 좋습니다. 프로그램을 Visual C++ 라이브러리에 정적으로 링크하면 응용 프로그램의 성능이 크게 개선된다고 오해하는 경우가 많습니다. 그러나 거의 모든 경우 Visual C++ 라이브러리를 동적으로 로드하더라도 성능에는 큰 영향이 없습니다. 또한, 정적 링크를 사용하면 응용 프로그램 작성자 또는 Microsoft가 응용 프로그램 및 종속 어셈블리를 서비스할 수 없습니다. 예를 들어 특정 라이브러리에 정적으로 링크된 응용 프로그램이 클라이언트 컴퓨터에서 새 버전의 라이브러리와 함께 실행된다고 가정합니다. 응용 프로그램에서는 여전히 이 라이브러리의 이전 버전 코드를 사용하므로, 강화된 보안 기능과 같은 라이브러리의 향상 내용을 활용할 수 없습니다. C/C++ 응용 프로그램 작성자는 종속 라이브러리에 정적으로 링크하기로 결정하기 전에 서비스 시나리오에 대해 충분히 고려한 다음 가능하면 동적 링크를 사용하는 것이 좋습니다.

참고 항목

개념

배포 전략 선택

ClickOnce 보안 및 배포

배포 예제

기타 리소스

배포(Visual C++)

Windows Installer 배포 개요