Visual Studio 2015 зависимости времени выполнения или как избавиться от Universal CRT?
Скомпилировал пару .dll с использованием Visual Studio 2015 и попытался развернуть на некоторых старых Windows 7/64 бит. Попытался также угадать, какие DLL необходимы для запуска приложения, и скопировал MSVCP140.DLL & VCRUNTIME140.DLL - но приложение не смогло загрузить vs2015 dll. Начал анализировать, что не так - и обходчик зависимостей показал зависимости от следующих DLL:
API-MS-WIN-CRT-MATH-L1-1-0.DLL
API-MS-WIN-CRT-HEAP-L1-1-0.DLL
API-MS-WIN-CRT-CONVERT-L1-1-0.DLL
API-MS-WIN-CRT-STRING-L1-1-0.DLL
API-MS-WIN-CRT-STDIO-L1-1-0.DLL
API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL
API-MS-WIN-CRT-FILESYSTEM-L1-1-0.DLL
API-MS-WIN-CRT-TIME-L1-1-0.DLL
Это было особенно удивительно, поскольку, насколько я понимаю, CRT отвечает за запуск dll / exe, он не предоставляет никаких услуг более высокого уровня.
Хорошо, попытался выяснить, как от них избавиться или хотя бы минимизировать.
Нашел одну статью:https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/
В нем упоминается о выпуске статических библиотек - поэтому я подумал, что смогу связать их и избавиться от ада зависимостей * L1-1-0.DLL *, но, что бы я ни пытался - у меня ничего не получилось. Я пытался связать с libvcruntime.lib, libucrt.lib, libcmt.lib, пытался отключить с помощью опции компоновщика "/nodefaultlib:vcruntime.lib", и даже пытался добавить каталог включения $ (UniversalCRT_IncludePath), а также переопределил некоторые из определения, как я пытался угадать, они работают - ни одна из моих попыток не помогла.
В качестве промежуточного решения я прибегаю к использованию Visual studio 2013, где CRT-библиотеки DLL только два: msvcp120.dll, msvcr120.dll.
Конечно, вы, вероятно, порекомендуете установить Visual Studio 2015 во время выполнения, но одним из наших требований является поддержка отдельного исполняемого файла, который работает без какой-либо установки, поэтому дополнительная установка пока не обсуждается.
Можете ли вы порекомендовать мне что-нибудь еще, кроме как ждать Visual Studio 2017, чтобы прибыть?