KB2465367 и сторонние библиотеки - PullRequest
2 голосов
/ 05 мая 2011

Я использую сторонние библиотеки, которые я получил задолго до выхода KB2465367. Мой компьютер для разработки был обновлен до KB2465367, поэтому все генерируемые мной двоичные файлы теперь, похоже, зависят от 8.0.50727.5592 CRT (версия CRT 2465367).

Теперь, когда я хочу развернуть это приложение, я использую модуль слияния 8.0 CRT (также обновленный 2465367). Это устанавливает 8.0.50727.5592 версии библиотек MSVC (например, msvcrt80.dll).

Но, когда я запускаю свое приложение на компьютере, на котором никогда не была установлена ​​среда выполнения VC, он жалуется на «Это приложение не удалось запустить из-за неправильной конфигурации приложения. Повторная установка приложения может решить эту проблему». Я проследил это до системной записи в журнале событий: «Сгенерировать контекст активации не удалось для C: \ Program Files \ MyCompany \ MyApp.exe. Справочное сообщение об ошибке: Операция успешно завершена». под источником "SideBySide".

Конечно, это обновление в основном означало, что я мертв в воде.

Как мне продолжить отсюда? Нужно ли моим клиентам устанавливать версию CRT 8.0.50608.0 после установки моего приложения, потому что сторонним библиотекам нужно 8.0.50608.0, а MSM, который я использовал, не включал его?


В моих обстоятельствах я использую Как: установить распространяемый Visual C ++ вместе с программой установки , которая описывает использование только одного MSM. Рекомендуется также использовать политику MSM для перенаправления любых библиотек DLL, зависящих от более старых версий среды выполнения. Смотри также http://lynk.at/jlqsKx

Ответы [ 3 ]

1 голос
/ 06 июня 2011

То же самое произошло, когда MS развернул KB971090.
Простое решение - удалить KB2465367.

Более подробную информацию о KB971090 и KB2465367 можно получить по адресу здесь.

0 голосов
/ 28 мая 2012

Ваша программа установки должна использовать два модуля слияния:

  1. библиотеки времени выполнения и
  2. Файл политики, который перенаправляет все более старые версии среды выполнения на новую версию.

Вторично распространяемый пакет vcredist_xxx.exe устанавливает как последнюю версию библиотек, так и файлы политики.


Вы не можете предполагать, что библиотеки VC доступны на компьютерах пользователей, поэтому их всегда нужно устанавливать. В противном случае ваше приложение не будет запущено.

0 голосов
/ 09 мая 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...