Когда я создаю приложение для Магазина Windows с помощью Visual Studio 2013 Preview, я замечаю, что мой двоичный файл приложения зависит от msvcr120_app.dll. Что это за DLL? Я также заметил, что msvcr120_app.dll не установлен в «C: \ Windows \ System32», тогда как msvcr120.dll установлен там.
Мне не понятно
В чем разница между msvcr120_app.dll и msvcr120.dll?
как моё приложение может работать (когда я нажимаю F5 в моем проекте Visual Studio), если в System32 не установлена зависимость msvcr120_app.dll?
В Visual Studio 2013 библиотеки DLL времени выполнения C ++, используемые для приложений рабочего стола, отличаются от тех, которые используются для приложений Магазина Windows.
Настольные приложения используют такие библиотеки DLL времени выполнения, как msvcr120.dll, msvcp120.dll, vcamp120.dll, vcomp120.dll, vccorlib120.dll и так далее. Двоичные файлы, созданные с использованием библиотек C ++, расположенных в$ (VCInstallDir) Lib«есть зависимость от этих DLL.
Приложения магазина используют имена библиотек времени выполнения, такие как msvcr120_app.dll, msvcp120_app.dll, vcamp120_app.dll, vcomp120_app.dll и vccorlib120_app.dll. Двоичные файлы, созданные с использованием библиотек C ++, расположенных в$ (VCInstallDir) Lib \ магазин«есть зависимость от этих DLL.
Основное различие заключается в том, что библиотеки DLL-библиотеки Store (с именами _app) были полностью реализованы с использованием API-интерфейса Windows, доступного для приложений Store. Это можно проверить, запустив «dumpbin / import» в обоих типах DLL и сравнив результаты.
Кроме того, библиотеки DLL хранилища не нужно устанавливать в System32, поскольку зависимость времени выполнения для приложений Магазина удовлетворяется с помощью отдельного механизма пакета зависимостей. описано здесь. Одно из отличий между средами VCLibs VS2012 и VS2013 заключается в том, что в Visual Studio 2013 пакет AppX для отладки VCLibs содержит библиотеки DLL отладки и выпуска CRT.
Также обратите внимание, что любые приложения Магазина, содержащие любые двоичные файлы, которые зависят от DLL-библиотек рабочего стола C ++, не будут приняты в Магазине Windows.
Других решений пока нет …