배포 방법 선택

배포에 Windows Installer를 사용하는 것이 좋습니다. Windows Installer는 설치, 수리 및 제거를 지원하고 애플리케이션 파일, 종속성 및 레지스트리 항목의 원자성 업데이트도 지원합니다. Visual C++ 애플리케이션이 자체 포함되어 있고 복사 명령을 사용하여 배포할 수 없는 경우 Windows Installer를 사용합니다.

참고 항목

Visual Studio에서 Visual C++ 네이티브 애플리케이션에 대한 ClickOnce 배포가 가능하지만, 추가 단계가 필요합니다. 자세한 내용은 Visual C++ 애플리케이션에 대한 ClickOnce 배포를 참조하세요.

Visual C++ 라이브러리는 공유 DLL입니다.

Visual C++ 라이브러리는 Visual Studio 설치 관리자에 의해 디렉터리에 설치 %windir%\system32\ 되므로 해당 라이브러리에 의존하는 Visual C++ 애플리케이션을 개발할 때 예상대로 실행됩니다. 그러나 대부분의 컴퓨터에는 Visual Studio가 설치되어 있지 않습니다. 이러한 컴퓨터에 애플리케이션을 배포하려면 라이브러리가 애플리케이션과 함께 설치되어 있는지 확인하는 것이 좋습니다.

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

배포 시 재배포 권한이 있는 모든 버전의 Visual C++ 라이브러리를 재배포할 수 있습니다. 배포 방법은 다음 세 가지가 있습니다.

  • Visual C++ 재배포 가능 패키지 패키지를 사용하여 중앙 배포 이 방법은 권장되는 방법입니다. Visual C++ 재배포 가능 패키지 패키지는 Visual C++ 라이브러리를 공유 DLL로 설치하는 실행 파일입니다%windir%\system32\. (이 폴더에 설치하려면 관리자 권한이 필요합니다.) 대상 컴퓨터에 애플리케이션을 설치하기 전에 재배포 가능 패키지를 실행하는 부트스트래퍼, 스크립트 또는 설치 프로그램을 만들 수 있습니다. 재배포 가능 패키지는 x86, x64, ARM64 및 ARM 플랫폼에 사용할 수 있습니다. 패키지 파일을 찾을 위치에 대한 자세한 내용은 재배포 가능 파일 찾기를 참조 하세요. 재배포 가능 패키지를 사용하는 방법에 대한 자세한 내용은 연습: Visual C++ 재배포 가능 패키지 패키지를 사용하여 Visual C++ 애플리케이션 배포를 참조하세요.

  • 병합 모듈을 사용하여 중앙 배포 이러한 방식으로 배포된 라이브러리는 Windows 업데이트 자동으로 업데이트할 수 없으므로 이 메서드는 더 이상 사용되지 않습니다. 병합 모듈을 사용하여 특정 Visual C++ 라이브러리를 공유 DLL로 설치할 수 있습니다 %windir%\system32\. (이 폴더에 설치하려면 관리자 권한이 필요합니다.) 병합 모듈은 애플리케이션에 .msi 대한 설치 관리자 파일의 일부가 됩니다. 더 이상 사용되지 않으므로 Visual C++ 재배포 가능 패키지 병합 모듈은 Visual Studio 2022 및 2019에서 설치 가능한 선택적 구성 요소입니다. Visual Studio 2017 및 2015에는 기본적으로 설치됩니다. 자세한 내용은 병합 모듈 파일을 찾을 수 있는 위치를 참조 하세요.

  • 로컬 배포. 로컬 배포는 대부분의 상황에서 권장되지 않습니다. 로컬 배포에서는 Visual Studio 설치에서 특정 Visual C++ DLL을 복사하여 일반적으로 \%VCINSTALLDIR%Redist\MSVC\<version>\<target-platform>\애플리케이션 실행 파일과 동일한 폴더에 있는 대상 컴퓨터에 설치합니다. 이 배포 방법을 사용하여 관리자 권한이 없는 사용자가 설치를 사용하도록 설정할 수 있습니다. 또는 썸 드라이브 또는 네트워크 공유에서 실행할 수 있는 애플리케이션의 경우

배포에서 재배포 가능 병합 모듈을 사용하는 경우 앱을 설치하는 사용자에게는 관리 권한이 있어야 합니다. 그렇지 않으면 Visual C++ DLL이 설치되지 않고 애플리케이션이 실행되지 않을 수 있습니다. 사용자 단위로 설치를 허용하는 애플리케이션 설치 관리자는 시스템의 모든 사용자에게 영향을 주는 공유 위치에 라이브러리를 설치합니다. 로컬 배포를 사용하여 특정 사용자 애플리케이션의 디렉터리에 필요한 Visual C++ DLL을 설치할 수 있습니다. 이 방법은 다른 사용자에게 영향을 주지 않거나 관리자 권한이 필요하지 않습니다. 서비스 가능성 문제가 발생할 수 있으므로 Visual C++ 재배포 가능 패키지 DLL의 로컬 배포는 권장하지 않습니다.

Visual C++ 라이브러리를 잘못 배포하면 이러한 라이브러리에 의존하는 애플리케이션을 실행할 때 런타임 오류가 발생할 수 있습니다. 운영 체제에서 애플리케이션을 로드할 때는 에 설명된 LoadLibraryEx검색 순서를 사용합니다.

동적 연결이 정적 연결보다 낫습니다.

Visual C++ 라이브러리를 재배포할 때는 정적 연결을 사용하지 않는 것이 좋습니다. 정적 연결은 애플리케이션 성능을 상당히 개선하는 경우는 거의 없으면서도 서비스 제공 비용은 거의 항상 높아집니다. 예를 들어 보안 향상으로 업데이트된 라이브러리를 사용하여 정적으로 연결된 애플리케이션을 고려해 보세요. 애플리케이션을 다시 컴파일하고 다시 배포하지 않으면 이점을 얻을 수 없습니다. 대신 애플리케이션을 사용하는 라이브러리에 동적으로 연결하는 것이 좋습니다. 그런 다음 라이브러리를 배포할 때마다 업데이트할 수 있습니다.

참고 항목

데스크톱 애플리케이션 배포
ClickOnce 보안 및 배포
배포 예제