簡體   English   中英

在更新COM DLL后部署.NET服務

[英]Deploying a .NET service after updating a COM DLL

我正在嘗試更新vb6 DLL並重新部署.NET服務,但是出現以下錯誤:

System.Runtime.InteropServices.COMException(0x80040154):由於以下錯誤,檢索具有CLSID {D01BF589-BC04-4119-8168-AE6180BBD021}的組件的COM類工廠失敗。

我正在部署的步驟如下:

  1. 編譯VB6 COM DLL
  2. 在目標計算機上注冊COM dll
  3. 使用tblimp創建一個Interop DLL
  4. 將此Interop DLL添加到.NET項目
  5. 重新編譯項目和安裝程序
  6. 在目標計算機上運行安裝程序(先前未安裝該服務)

有任何想法嗎?

錯誤代碼0x80040154轉換為REGDB_E_CLASSNOTREG,表示“類未注冊”,因此我猜測您的類未注冊。 您應該在HKEY_LOCAL_MACHINE \\ CLSID下查看注冊表,並確保注冊沒有失敗並且它實際上指向您的dll。

您可能會缺少目標計算機上COM對象所需的其他dll。 sysinternals的“ listdlls”和“ procexp”可能有助於識別缺失的內容。 此外,.NET可能正試圖強制其作為64位應用程序運行。 使用/ 32bit +開關運行corflag可能會有所幫助。

您是否已在目標計算機上安裝了VB運行時及其相關的輔助支持文件? 您是否在dll上運行了regsrvr32? 您是否使用TypeLib進行了檢查,以查看它是否在目標計算機的注冊表中?

希望這對您有所幫助,湯姆,謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM