【问题标题】:Can I rely on MSXML4 being present?我可以依赖 MSXML4 的存在吗?
【发布时间】:2010-12-15 02:59:46
【问题描述】:

我们在发布前在 Windows XP、Vista 和 Windows 7 的“全新安装”映像上测试我们的软件设置。

软件中的一些旧代码仍然依赖于 MSXML4。到目前为止,我一直认为没有必要安装 MSXML4,因为显然它已经存在于 Windows 的全新安装中。然而,现在我收到一个来自 Windows XP 用户的奇怪报告,他的机器上缺少 MSXML4,我们的软件无法正常工作。

这是否意味着我们的全新安装映像不像我们想象的那样干净?还是没有msxml4的Windows XP系统是病态的异常?

【问题讨论】:

    标签: installation msxml4


    【解决方案1】:

    来自 Microsoft 的 XML 团队:Using the Right Version of MSXML in Internet Explorer。它已经三年了,但仍然包含您真正需要知道的一切;此外,它不仅与 IE 相关,因为它以更通用的术语谈论不同版本的 MSXML。

    快速而肮脏的答案,来自那篇文章:

    MSXML 3.0 是我们首选的“后备”版本 - 从完全修补的 Win2k SP4 安装开始,它安装在每个操作系统上,因此它需要“零部署”并定期与操作系统一起维护

    编辑:来自 TFA 的一些其他相关位:

    MSXML3 没有 MSXML6 的所有改进,但开发人员应该认为它是一个强大且稳定的 MSXML 应用程序平台...MSXML4 是 MSXML6 的前身,但从未在操作系统中发布。

    【讨论】:

    • 好的,“从未在操作系统中发布”几乎是我正在寻找的明确答案。我猜我们的图像并不像我们想要的那样“干净”。
    【解决方案2】:

    在我的 Windows 7 x64 Pro 机器上没有 MSXML4 —— 只有 MSXML3 和 MSXML6(虽然我不确定它们是包含在 Windows 中还是来自,例如 Office)。由于我很确定我没有从我的 PC 中手动删除任何系统 DLL,因此我得出结论不能依赖正在安装的 MSXML4

    PS:不,MSXML6 不模拟 MSXML4...Set x = CreateObject("Msxml2.DOMDocument.4.0")fails 在我机器上的 Word VBA 中,但 Set x = CreateObject("Msxml2.DOMDocument.6.0") 有效。

    【讨论】:

      【解决方案3】:

      您可以假设这是异常情况。我敢打赌,用户已经从他们的机器中删除了 MSXML,无论是有意还是无意。

      也就是说,您仍应在安装时检查 MSXML4 是否存在,如果不存在则报错。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-23
        • 2017-02-01
        • 2012-01-09
        • 2015-03-15
        • 2017-09-24
        • 2018-03-08
        • 1970-01-01
        • 2015-04-03
        相关资源
        最近更新 更多