Я перешел с 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, который требуется.