Возможно ли, что приложение C ++ использует CRT 4053, когда манифест использует 762?
Вопрос
Мое приложение составлено на ПК для разработки с манифестом 762:
Однако во время выполнения на другом выпуске PC приложение использует версию файла 4053. C: Windows Winsxs x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989 msvcr80.dll
Где-то вдоль выполнения моего приложения я получаю ошибку выполнения, указываю на MSVCR80.dll. Я подозреваю, что проблема может быть вызвана тем, что приложение использует DLL во время выполнения, которая не использовалась во время сборки.
Если я проверю папку Winsxs от Release PC, у меня есть 762 и 4053 версия CRT. Почему приложение использует 4053 вместо того, что используется в манифесте?
Спасибо.
Решение
Из-за «политики издателей», которые перенаправляют запрошенные версии DLL. Ваш манифест не должен просить 762 больше, у него есть коэтен. Вам нужно будет развернуть Обновление безопасности на вашу машину, так что VC включает Crtassem.h обновляется.