сборка с Visual Studio 2019, но зависит от MFC140U.dll - PullRequest
1 голос
/ 20 июня 2019

Я перешел с VS2015 на VS2019. Я создал развертывание, и все хорошо локально, здесь на трех машинах. Но когда я отправил тестовый MSI на старый ноутбук, мы получили файл MFC140.dll не найден. Я нашел зависимость в одной из моих библиотек, подумал, что это как-то связано с тем, что я не перенес ее в UNICODE. Сделал это и все еще зависит от MFC140U.dll

У меня есть

toolset       (VS 2019)vs142
SDK Version   10.0(latest installed)

Я погуглил и вытащил волосы. Но огни не включаются. Проверено, и это также происходит со второй dll, которую я строю.

Итак, я проверяю другое приложение, которое входит в развертывание. Он не использует ни одну из моих библиотек. Тем не менее, это также зависит от MFC140U.dll, а также MFC142U.dll. Единственные библиотеки, связанные в этом, это BOOST и SQLITE3. И у них нет никаких зависимостей MFC. Это только добавляет мне путаницы.

Единственная вещь, которая имела бы для меня смысл, это то, что сборка vs142 имеет 140 зависимостей, и система развертывания не учитывает это. Обратите внимание, что развертывание не выполняется с установочным экраном, как это было сделано с vs2015.

Да, я мог бы это исправить, отправив MFC140U.dll, но это не совсем верно. Либо я, либо Microsoft, что-то не так, это все, что я могу понять.

UPDATE

Я создал новый проект MFC с VS2019 и посмотрел на зависимости. То же самое, это о Microsoft. И похоже, что система развертывания включает в себя библиотеки MFC142x, но не MFC140, который требуется.

1 Ответ

2 голосов
/ 20 июня 2019

Вы не упоминаете, какова ваша "система развертывания", поэтому я не уверен, какую технологию установки вы используете здесь.

Но ваше приложение или одна из ваших DLL зависят от MFC. Если MFC не нужен, вы можете проверить свои настройки сборки на EXE или DLL, о которой идет речь. Другой пункт, который нужно проверить, это то, что вы ошибочно включили заголовок afx.h в свой проект. В файле afx.h есть комментарии #pragma (lib, xxx), которые разрешаются в соответствующий файл mfc140xxx.lib в зависимости от параметров сборки.

Если зависимость MFC допустима, вы должны устанавливать компоненты среды выполнения VC, используя пакеты vsredist, предназначенные именно для этой цели. Их следует установить на жесткий диск по пути, аналогичному пути C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ VC \ Redist \ MSVC \ 14.21.27702

Кроме того, вы можете скачать последнюю версию, используя следующую ссылку:

Последние поддерживаемые загрузки Visual C ++

С уважением,

...