Возможно ли, что приложение C ++ использует CRT 4053, когда манифест использует 762?

StackOverflow https://stackoverflow.com/questions/2685917

  •  30-09-2019
  •  | 
  •  

Вопрос

Мое приложение составлено на ПК для разработки с манифестом 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 обновляется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top