Visual Studio 2013에서 데스크톱 응용 프로그램에 사용되는 C++ 런타임 DLL은 Windows 저장소 응용 프로그램에 사용되는 DLL과 다릅니다.
데스크탑 애플리케이션은 msvcr120.dll, msvcp120.dll, vcamp120.dll, vcomp120.dll, vccorlib120.dll 등으로 명명 된 런타임 DLL을 사용합니다. " lib에는 $ (VCInstallDir)"에있는 C++ libs와 사용하여 구축 된 바이너리는 이러한 DLL에 대한 종속성이 있습니다.
스토어 애플리케이션은 msvcr120_app.dll, msvcp120_app.dll, vcamp120_app.dll 같은 런타임 DLL의 이름을 사용, vcomp120_app.dll 및 vccorlib120_app.dll "$ (VCInstallDir) lib \ store"에있는 C++ Libs를 사용하여 작성된 바이너리는이 DLL에 종속됩니다.
가장 큰 차이점은 저장소 앱 (이름에 _app이있는 DLL)은 Store 앱용 Windows API를 사용하여 완전히 구현된다는 것입니다. 이는 두 유형의 DLL에서 "dumpbin/imports"를 실행하고 결과를 비교하여 확인할 수 있습니다.
또한 저장소 응용 프로그램에 대한 런타임 종속성이 별도의 종속성 패키지 메커니즘 described here을 사용하여 충족되므로 Store DLL을 System32에 설치할 필요가 없습니다. VS2012와 VS2013의 VCLibs 프레임 워크의 한 가지 차이점은 Visual Studio 2013의 VCLib 디버그 AppX 패키지에는 Debug 및 Release CRT DLL이 모두 포함되어 있다는 것입니다.
데스크톱 C++ 런타임 DLL에 종속 된 바이너리가 포함 된 모든 스토어 앱은 Windows 스토어에서 허용되지 않습니다.
비 매장 DLL을 System32에 설치할 필요도 없습니다. 이름이 이미 설명했듯이, 해당 디렉토리는 (운영) 시스템의 일부입니다. – MSalters
그들은 "필요"하지는 않지만 System32에 설치할 수 있습니다. 좋든 나쁘 든간에 런타임 DLL을 System32와 같은 중앙 디렉토리에 설치하는 것은 오래 전부터있었습니다. –
실제로 이러한 DLL은 없어야합니다. 또는 앱이 Microsoft의 데스크톱 앱 인증을 통과하지 못합니다. Windows 2000 이후 "Do not install to system32"정책이있었습니다. –