Почему Windows бок о бок (winSxS) устанавливает политику для автоматического обновления, когда существуют известные проблемы между версиями? - PullRequest
1 голос
/ 29 декабря 2008

У нас есть приложение, скомпилированное с использованием MSVC 2K5, SP1 (версия 762 msvcrt80)

Все хорошо, вплоть до тех пор, пока кто-нибудь не установит на тот же компьютер .Net3.0SP1, и вместе с ним будет установлена ​​версия 1433 msvcrt80 и политика автоматического обновления.

Теперь у нас случайные сбои повсюду и несчастные клиенты.

Я понимаю, что мы можем настроить наши файлы манифеста, чтобы принудительно использовать определенную версию, но я нашел только очень уродливый способ скопировать детали, которые автоматически генерируются, и изменять их вручную. Это особенно неприятно с большим количеством приложений для исправления

Можем ли мы вместо этого избавиться от глупой политики обновления в каталоге winSxS? Есть ли опция / флаг для компиляции только для определенной версии и при этом автоматически генерировать манифесты?

1 Ответ

1 голос
/ 29 декабря 2008

Найдите сгенерированный манифест для вашей конкретной версии CRT. Затем добавьте прагму в основной файл вашего приложения:

#pragma comment(linker,"/manifestdependency:\"type='win32' "            \
        "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".CRT' "              \
        "version='" _CRT_ASSEMBLY_VERSION "' "                          \
        "processorArchitecture='x86' "                                  \
        "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...