Мы распространяем распространяемые VC++ файлы как часть нашего приложения - они находятся на том же уровне папок, что и наше приложение. И 9 из 10 раз это просто работает. Однако иногда мы сталкиваемся с клиентом, на компьютере которого не распространяются распространяемые компоненты - приложение не запускается при запуске. И, по-видимому, исправление заключается в том, чтобы зайти на компьютер клиента и установить официальную рассылку на SMTP C++, а затем все будет работать. Минимальная версия Windows, на которой работает наше приложение, - Windows 7 - не слишком древняя. Мы попытались установить наше приложение на новый образ Windows 7 - он просто работает. Любые идеи относительно того, что происходит? СпасибоVS2015 C++ redistributables ИТОГО НЕ обнаруживается
ответ
Если приложение (или программное обеспечение) является большим даже без перепродажи Visual C++, игнорируйте этот ответ.
Мое предложение состоит в том, чтобы скомпилировать с /MT
вместо /MD
a.k.a. вместо библиотек динамической компоновки (DLL) использовать библиотеки статических ссылок (LIB).
Его отличная идея, но у нас есть тонна DLL. Таким образом, файлы времени выполнения должны быть частью каждой DLL? Его старое 32-битное приложение - это значительно увеличило бы площадь, верно? – alernerdev
Возможно, клиент не установил правильную версию? –
Универсальный ЭЛТ, похоже, решил проблемы, которые у нас были. Количество файлов, которые должны быть распределены, кажется довольно большим, но все наши проблемные машины, похоже, сейчас работают. https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/
Почему вы устанавливаете распространяемые файлы на том же уровне, что и приложение? Обычно они идут в windows \ system32 или windows \ syswow64. – rrirower
не хотите ничего беспокоить на машине клиента. – alernerdev
Стандартная практика - установить их в этом месте. Установка должна обновить путь. – rrirower