Могу ли я полагаться на MSXML4?

90
11

Мы тестируем установку нашего программного обеспечения на изображениях "чистой установки" Windows XP, Vista и Windows 7 перед выпуском.


Какой-то старый код в ПО по-прежнему зависит от MSXML4. До сих пор я предполагал, что нет необходимости устанавливать MSXML4, потому что, по-видимому, он уже присутствует в чистой установке окон. Однако теперь у меня есть странный отчет от пользователя Windows XP о том, что MSXML4 отсутствует на его машине, и наше программное обеспечение не работает.


Означает ли это, что наши чистые установочные образы не так чисты, как мы думали? Или это система Windows XP без msxml4 патологической аномалии?

спросил(а) 2021-01-19T15:04:54+03:00 6 месяцев, 1 неделя назад
1
Решение
78

От команды Microsoft XML: Использование правильной версии MSXML в Internet Explorer. Это три года, но все еще содержит все, что вам действительно нужно знать; Кроме того, он не только имеет отношение к IE, но и говорит в более общих терминах о различных версиях MSXML.


Быстрый и грязный ответ, из этой статьи:


MSXML 3.0 является нашим предпочтительным "резервным" - он устанавливается на каждой ОС из полностью исправленной установки Win2k SP4, поэтому он требует "нулевого развертывания" и регулярно обслуживается с ОС


EDIT: некоторые дополнительные соответствующие биты из TFA:


MSXML3 не имеет всех улучшений в MSXML6, но разработчики должны считать его надежной и стабильной платформой для приложений MSXML... MSXML4 был предшественником MSXML6, но никогда не поставлялся в операционной системе.


ответил(а) 2021-01-19T15:04:54+03:00 6 месяцев, 1 неделя назад
63

Нет MSXML4 на моем компьютере с Windows 7 x64 Pro - только MSXML3 и MSXML6 (хотя я не уверен, были ли они включены в Windows или пришли, например, в Office). Поскольку я почти уверен, что вручную не удалял никаких системных DLL с моего ПК, я пришел к выводу, что вы не можете полагаться на установленный MSXML4.

PS: Нет, MSXML6 не эмулирует MSXML4... Set x = CreateObject("Msxml2.DOMDocument.4.0") не работает в Word VBA на моей машине, но Set x = CreateObject("Msxml2.DOMDocument.6.0") работает.

ответил(а) 2021-01-19T15:04:54+03:00 6 месяцев, 1 неделя назад
45

Вы можете предположить, что это аномалия. Готов поспорить, что пользователь удалил MSXML с их машины, преднамеренно или случайно.


Тем не менее, вы все равно должны проверить наличие MSXML4 во время установки и ошибку, если она отсутствует.

ответил(а) 2021-01-19T15:04:54+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема