2015-08-20 2 views
0

Я в настоящее время преобразовываю решение исполняемых команд командной строки, связанных с статическими libs из VS2013 в VS2015. Все компилируется и linkes хорошо, однако, при выполнении командной строки исполняемого новый appcrt140.dll не найден:Visual Studio 2015/Win10: appcrt140.dll отсутствует

enter image description here

Я установил как x86 и x64 VC распространяемого. Из того, что я читал в Интернете, он должен быть частью Windows10, однако я не могу обнаружить этот файл в своей системе. Кроме того, в моей системе отсутствует desktopcrt140.dll; оба из которых должны быть частью VS2015 REDIST (см Visual C++ Runtime Files), однако, они, кажется, не должны быть установлены вместе с VS2015 Предприятие:

enter image description here

Что я здесь отсутствует/Как установить недостающие библиотеки DLL ?

ответ

1

Если я правильно понял, то CRT понес значительные изменения между VS2015 CTP1 и текущим VS2015 (более подробно here), одна из которых является заменой обеих ваших отсутствующих DLL на то, что они называют универсальным CRT (как указано часть Windows 10).

AppCRT и DesktopCRT были объединены в единую библиотеку, которую мы назвали Universal CRT.

Судя по этому, я бы сказал, что вы должны перейти на новую версию VS2015, если вы ее еще не используете. Если вы уже используете это и получаете эту ошибку, это может быть связано с зависимостью, которая была построена с помощью VS2015 CTP1.

+0

VS2015 был выпущен (https://www.visualstudio.com/en-us/news/vs2015-vs.aspx), он больше не является CTP – Mgetz

+0

Спасибо за подсказку! Я на VS2015 Enterprise 14.0.23107.0. У меня есть как 'ucrtbase.dll', так и' ucrtbased.dll', установленные в моей системе. Тем не менее, мне интересно, почему мое приложение ищет (казалось бы, устаревший) 'appcrt140.dll'. Теперь я предполагаю, что это связано с некоторой предварительно скомпилированной зависимостью, которую я использую в NuGet (v140 boost и zlib - вероятные кандидаты). Можно ли определить DLL, которая запрашивает/ложно связывается с 'appcrt140.dll', используя какой-то инструмент, например, ходячий ходячий? – jmartinez

+0

@jmartinez да, зависимый ходок поможет вам в этом - он покажет, связаны ли DLL напрямую вашим модулем или зависимостью. Btw делает пустое консольное приложение также страдает от этого? Если не проблема, скорее всего, вызвана зависимостью. –

Смежные вопросы