在一個系統裡邊應用了一個htmleditor,winform的程式,需要引用Microsoft.mshtml.dll。
所以就引用了.net下的這個檔案。添加引用>>.net>>選擇Microsoft.mshtml。
開發過程一切完好,沒有遇到任何問題。但是部署到另外的一台機器的時候,就出現了,找不到引用的Microsoft.mshtml.dll的問題。看程式目錄下也是沒有mshtml.dll類似的檔案。
看來是這個Microsoft.mshtml.dll出問題了,到網上搜尋了一下:
得到以下文章:Microsoft.mshtml到底是什嗎? (http://www.cnblogs.com/waxdoll/archive/2005/04/08/134196.html)
仔細閱讀:原來在COM組件引用裡邊還有一個mshtml的引用東西。一共有兩個mshtml。(以下原文引用):
.NET系統附帶了一個mshtml.dll的Interop封裝,理論上來說自然無法脫離COM獨立存在,但是既然是Interop封裝過的,那麼在.NET環境中的使用肯定就要比直接調用COM組件有優勢。
開始還想著到C盤裡邊把Microsoft.mshtml.dll拷貝到程式目錄了事算了,搜素了一下,發現問題嚴重了,這是個2.98 MB的大傢伙。可是不引用這個可以嗎?
好在搜尋這個的時候出現了另外兩個好東西:WindowsLive.Writer.Interop.Mshtml.dll(165k)和WindowsLive.Writer.Mshtml.dll(113k)。
所以在程式裡邊刪除了Microsoft.mshtml.dll的引用,換上了113k的dll的引用,發現不行。在換上WindowsLive.Writer.Interop.Mshtml.dll(165k),終於可以成功了。嗯,這個小塊頭的mshtml.dll可以替換掉3M的的那個Microsoft.mshtml.dll,不錯,不錯。
然後,開啟物件瀏覽器,把兩個dll檔案對比了一下,不出所料:小的dll是也是針對mshtml COM的封裝。WindowsLive.Writer.Interop.Mshtml.dll這個是在Live Writer的裡邊的,LiveWriter裡邊也有一個htmleditor,原來上應該和我現在用的htmleditor差不多。
在自己blog上發過,又轉這邊來了。