在 Visual Studio 2013 中,用于桌面应用程序的 C++ 运行时 DLL 与用于 Windows 应用商店应用程序的不同。
桌面应用程序使用名为 msvcr120.dll、msvcp120.dll、vcamp120.dll、vcomp120.dll、vccorlib120.dll 等的运行时 DLL。使用位于“<strong>$(VCInstallDir)lib”中的 C++ 库构建的二进制文件依赖于这些 DLL。
应用商店应用使用运行时 DLL 名称,例如 msvcr120_app.dll、msvcp120_app.dll、vcamp120_app.dll、vcomp120_app.dll 和 vccorlib120_app.dll。使用位于“<strong>$(VCInstallDir)lib\store”中的 C++ 库构建的二进制文件依赖于这些 DLL。
主要区别在于商店 DLL(名称中带有 _app 的那些)已完全使用商店应用程序可用的 Windows API 实现。这可以通过在两种类型的 DLL 上运行“dumpbin /imports”并比较结果来验证。
此外,商店 DLL 不需要安装在 System32 中,因为商店应用程序的运行时依赖项使用此处描述的单独依赖包机制来满足。VS2012 和 VS2013 的 VCLibs 框架之间的一个区别是:在 Visual Studio 2013 中,VCLibs 调试 AppX 包包含调试和发布 CRT DLL。
另请注意,任何包含依赖于桌面 C++ 运行时 DLL 的二进制文件的应用商店应用程序都不会被 Windows 应用商店接受。