5

对象“MSXML2.ServerXMLHTTP.4.0”从何而来?哪个安装包?

我正在尝试执行以下操作:

Set oXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.4.0")

此尝试在我的开发机器上失败(没有返回任何对象),但在我同事的开发机器上成功。显然,他安装了一些我没有安装的东西,反之亦然,但是这个对象、dll 等来自哪里?

我需要安装什么才能让这个电话正常工作?

作为记录,将对象更改为不同版本不是一种选择,因为这依赖的代码已针对此特定版本测试了几天。我们得回去再测试一次...

为了扩展这个问题,我如何知道当前安装了哪个版本的 MS XML?

4

4 回答 4

5

尝试使用此功能:-

Function ProgIDInstalled(progID)
    On Error Resume Next
    Dim o : Set o = CreateObject(progID)
    ProgIDInstalled = Err.Number = 0
End Function

If ProgIDInstalled("MSXML2.DOMDocument.3.0") Then
    ' MSXML3 is present   '
End If

If ProgIDInstalled("MSXML2.DOMDocument.4.0") Then
    ' MSXML4 is present   '
End If

If ProgIDInstalled("MSXML2.DOMDocument.5.0") Then
    ' MSXML5 is present   '
End If

If ProgIDInstalled("MSXML2.DOMDocument.6.0") Then
    ' MSXML6 is present   '
End If

令我惊讶的是,即使是现在,针对 4.0 版本仍有新的发展。Microsoft 现在只修补 3.0 版和 6.0 版 MSXML 内核。

我知道现在为时已晚,但实际上您应该使用 3.0,它的优势在于它在当前支持的所有 Windows 平台上无处不在,因此您根本不需要考虑安装它。或者使用 6.0,因为您需要包含 MSXML 的分发,它也可能是 6,因为这是最新的,并且 4 和 5 都没有获得任何安全补丁。

于 2009-06-02T21:04:20.517 回答
1

请注意,MSXML 4.0 SP2 已终止支持。您应该迁移到 MSXML 6.0 以获得最佳支持和增强功能,或者回退到旧系统的MSXML 4.0 SP3

于 2010-04-21T05:08:22.257 回答
1

它们都可以同时安装。在 Windows/system32/msxml(ver).dll 下查看。

如果您的意思是注册了哪个版本,请看这里:

http://support.microsoft.com/kb/278674

当然,您可以像任何其他 dll 一样注册/取消注册。

于 2009-06-06T17:45:39.977 回答
0

我安装了:MSXML 4.0 SP2,它解决了我的问题。

虽然这只回答了我的部分问题:安装哪个版本。我仍然想知道如何识别系统上安装了哪个版本的 MS XML。

http://www.microsoft.com/downloads/details.aspx?familyid=3144b72b-b4f2-46da-b4b6-c5d7485f2b42&displaylang=en

于 2009-06-02T20:37:41.130 回答