2009-06-02 126 views
4

對象「MSXML2.ServerXMLHTTP.4.0」來自哪裏?哪個安裝包?MSXML2.ServerXMLHTTP.4.0來源?

我試圖做到以下幾點:

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

這種嘗試我的機器上失敗(沒有返回的對象),但它是成功的我同事的開發機器上。顯然,他安裝了一些我不知道的東西,反之亦然,但是這個對象,DLL等是從哪裏來的?

我需要安裝什麼才能使此通話起作用?

爲了記錄,將對象更改爲不同的版本不是一種選擇,因爲這取決於的代碼已根據此特定版本進行了幾天的測試。我們必須回去再測試...

爲了擴展這個問題,我該如何判斷當前安裝了哪個版本的MS XML?

+0

在這篇博客文章中有代碼可以從註冊表中讀取COM類的當前版本。 http://exceldevelopmentplatform.blogspot.com/2018/02/vba-progid-what-is-current-version.html – 2018-02-06 01:10:56

回答

4

嘗試使用此功能: -

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版本正在取得新的發展。微軟現在只修補版本3.0和版本6.0的MSXML核心。

現在我知道它太晚了,但是真的應該使用3.0,它具有在當前支持的所有Windows平臺上無處不在的優勢,因此您根本不需要考慮安裝它。或者使用6.0,因爲你需要包含一個MSXML的分佈,它可能是6,因爲這是最新的,4和5都沒有任何安全補丁。

+0

嘿。感謝您的代碼。我會稍微測試一下。爲了迴應新的發展,事實並非如此。我們需要調整遺留系統中的遺留代碼,以便與SharePoint一起工作。我們使用了3.0,並且開發人員指定了如何使這個工作進行到4.0,然後測試所有不檢查最新版本的東西。我寧願選擇6.0,但研究沒有做好。不是我們有時間... – 2009-06-03 14:32:04

+0

似乎工作,謝謝。 – 2009-06-03 14:55:26

1

它們都可以同時安裝。在Windows/system32/msxml(ver).dll下查看一下。

如果你指的是哪個版本被註冊,看看這裏:

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

當然

,你可以註冊/註銷同任何其他DLL。

相關問題