범용 CRT 배포

Visual Studio 2013을 통해 Visual Studio .NET에서 C++ 컴파일러 및 도구의 주요 릴리스는 Microsoft CRT(C 런타임) 라이브러리의 새 독립 실행형 버전을 포함합니다. 이러한 독립 실행형 버전의 CRT는 다양한 수준에서 서로에게 독립적이며 호환되지 않습니다. 예를 들어 Visual Studio 2012에서 사용하는 CRT 라이브러리는 msvcr110.dll이라는 버전 11이었으며, Visual Studio 2013에서 사용하는 CRT는 msvcr120.dll이라는 버전 12이었습니다. Visual Studio 2015부터는 더 이상 그렇지 않습니다. Visual Studio 2015 및 이후 버전의 Visual Studio는 모두 범용 CRT를 사용합니다.

UCRT(유니버설 CRT)는 Microsoft Windows 운영 체제 구성 요소입니다. Windows 10 이상 및 Windows Server 2016 이상에서 운영 체제의 일부로 포함됩니다. UCRT는 여전히 추가 지원을 받고 있는 이전 운영 체제에서 Windows 업데이트 사용하여 사용할 수 있습니다. 유니버설 CRT의 로컬 배포가 지원되며 몇 가지 제한 사항이 있습니다.

중앙 배포

중앙에 범용 CRT를 설치하기 위해 선호하는 메서드는 Microsoft Windows Update를 사용하는 것입니다. 범용 CRT는 지원되는 모든 Microsoft Windows 운영 체제에 대해 권장되는 업데이트이므로 기본적으로 대부분의 컴퓨터가 정기 업데이트 프로세스의 일부로 를 이를 설치합니다. 유니버설 CRT의 초기 릴리스는 KB2999226. KB3118401 다양한 버그 수정을 사용한 이후 업데이트가 이루어졌으며, 추가 버그 수정 및 새로운 기능으로 더 많은 업데이트가 있었습니다. 최신 업데이트는 "유니버설 C 런타임" 또는 "유니버설 CRT"를 검색 support.microsoft.com 합니다.

일부 Microsoft Windows 컴퓨터는 Windows Update를 사용하여 정기적으로 업데이트를 설치하고, 일부는 모든 권장 업데이트를 설치하지 않을 수도 있습니다. 이러한 컴퓨터에서 Visual Studio 2015 이상 C++ 도구 집합을 사용하여 빌드된 애플리케이션의 사용을 지원하기 위해 오프라인 배포에 사용할 수 있는 유니버설 CRT 재배포 가능 파일이 있습니다. 이러한 재배포 가능 파일은 위의 KB 링크 중 하나에서 다운로드할 수 있습니다. 유니버설 CRT 재배포 가능 패키지는 컴퓨터가 현재 서비스 팩으로 업데이트되어야 합니다. 따라서 예를 들어 Windows 7용 재배포 가능 패키지는 Windows 7 RTM이 아닌 Windows 7 SP1에만 설치됩니다.

유니버설 CRT는 C++ 라이브러리의 기본 종속성입니다. Visual C++ 재배포 가능 패키지(VCRedist)는 아직 설치되지 않은 컴퓨터에 유니버설 CRT(버전 10.0.10240)의 초기 버전을 설치합니다. 이 버전은 C++ 라이브러리 종속성을 충족하기에 충분합니다. 애플리케이션이 최신 버전의 유니버설 CRT에 의존하는 경우 Windows 업데이트 사용하여 컴퓨터를 완전히 최신 상태로 만들어야 합니다. 또는 해당 버전의 UCRT를 명시적으로 설치합니다. VCRedist를 설치하기 전에 Windows 업데이트 또는 MSU를 사용하여 유니버설 C 런타임을 설치하는 것이 가장 좋습니다. 이 설치 순서는 여러 번 필요한 재부팅을 방지하는 데 도움이 될 수 있습니다.

모든 운영 체제가 Windows 업데이트 통해 최신 유니버설 C 런타임에 적합한 것은 아닙니다. Windows 10 또는 Windows 11에서는 중앙에서 배포된 버전이 운영 체제 버전과 일치합니다. 유니버설 C 런타임을 추가로 업데이트하려면 운영 체제를 업데이트해야 합니다. Windows Vista~Windows 8.1의 경우 사용 가능한 최신 유니버설 C 런타임은 Windows 10 1주년 업데이트(버전 10.0.14393)를 기반으로 합니다.

로컬 배포

범용 UCRT의 로컬 배포가 지원되지만 성능 및 보안상의 이유로 권장되지 않습니다. 로컬 배포용 DLL은 컴퓨터 아키텍처에 따라 하위 디렉터리에 Windows SDK Windows Kits\10\Redist\ucrt\DLLs 의 일부로 포함됩니다. 필요한 DLL에는 포함 ucrtbase.dll 되며 이름이 APISet api-ms-win-*.dll전달자 DLL 집합입니다. 각 운영 체제에 필요한 DLL 집합은 다양합니다. 로컬로 배포할 때 모든 DLL을 포함하는 것이 좋습니다.

주의해야 할 로컬 배포에 대한 두 가지 제한 사항이 있습니다.

  • Windows 10 및 Windows 11에서는 애플리케이션에 유니버설 CRT의 애플리케이션 로컬 복사본이 포함되어 있더라도 시스템 디렉터리의 유니버설 CRT가 항상 사용됩니다. 유니버설 CRT는 Windows 10 이상의 핵심 운영 체제 구성 요소이므로 로컬 복사본이 최신 버전인 경우에도 마찬가지입니다.

  • Windows 8 이전의 Windows 버전: 유니버설 CRT는 기본 앱 실행 디렉터리를 제외한 모든 위치에 있는 경우 플러그 인을 사용하여 로컬로 패키징할 수 없습니다. 이 경우 APISet 전달자 DLL이 ucrtbase.dll 성공적으로 해결할 수 없습니다. 일부 권장된 대체 솔루션은 다음과 같습니다.

    • 정적으로 범용 CRT에 연결하고,
    • 중앙에서 범용 CRT를 배포하거나
    • 범용 CRT 파일을 앱과 같은 디렉터리에 배치합니다.

Microsoft Windows XP에서 배포

Visual Studio 2015 및 Visual Studio 2017 도구 세트는 Microsoft Windows XP에서 사용할 소프트웨어 개발을 계속 지원합니다. Microsoft Windows XP용 유니버설 CRT 버전이 있습니다. Microsoft Windows XP 운영 체제는 더 이상 기본stream 또는 추가 지원되지 않습니다. 따라서 유니버설 CRT를 Microsoft Windows XP에 중앙 배포하는 것은 다른 운영 체제와 다릅니다.

Visual C++ 재배포 가능 패키지 Windows XP에 설치되면 유니버설 CRT 및 모든 종속성을 시스템 디렉터리에 직접 설치합니다. Windows 업데이트 설치하거나 의존하지 않습니다. 재배포 가능 병합 모듈인 파일도 Microsoft_VC<version>_CRT_<target>.msm 동일한 작업을 수행합니다.

Windows XP에서 범용 CRT의 로컬 배포는 다른 지원 운영 체제에서도 동일합니다.

Important

Windows XP에 대한 런타임 라이브러리 지원은 Visual Studio 2015, 2017, 2019 및 2022용 최신 Visual C++ 재배포 가능 패키지 더 이상 사용할 수 없습니다. Windows XP를 지원하는 마지막 재배포 가능 패키지는 버전 16.7(파일 버전 14.27.29114.0)입니다. Windows XP 앱이 이후 버전의 재배포 가능 패키지로 배포되거나 업데이트되는 경우 앱이 실행되지 않습니다. 자세한 내용 및 Windows XP를 지원하는 재배포 가능 패키지 버전을 가져오는 방법은 Windows XP에 대한 프로그램 구성을 참조하세요.

참고 항목