2013-05-15 169 views
0

我已經註冊使用regasm工具.NET COM DLL,並註冊成功。它說'類型註冊成功'。但是當我打開註冊表時,我看不到我的dll。我用ProgId & clsId搜索,但沒有。無法註冊.NET COM DLL

我註冊了另一個DLL太相同的方式,它得到了註冊成功,我能夠從VB6的dll訪問它。

可能是什麼問題。有什麼問題的DLL?我以同樣的方式設置了我的dll的項目屬性,並且似乎已成功註冊。

我應該測試DLL從現有的VB6的工具,無法開始工作訪問。

感謝

Nishitha

+0

我把它的DLL被標記爲在項目屬性COM互操作? – Leon

+0

我已經在項目的屬性中勾選了'Make assembly COM visible'選項。我相信我不必檢查'註冊COM互操作',因爲我們正在使用regasm進行同樣的操作。 –

+1

Regasm.exe有* 4個*版本,32位與64位以及v2與v4。 75%的可能性你會使用錯誤的。當它變成SO問題時,100%。 –

回答

1

使用regasm.exe/regfile選項。這將創建一個包含註冊程序集時將要創建的所有條目的reg文件。

如果文件不包含任何條目,您的組件不出口任何COM類型。然後您需要確保您標記使項目屬性中的程序集COM可見選項或使用相應類型上的[ComVisible(true)]屬性。

如果你是一個64位系統上,確保您使用regasm的正確版本有不同版本的32位和64位:

  • %SYSTEMROOT%\Microsoft.NET\Framework\<framework version>\regasm.exe
  • %SYSTEMROOT%\Microsoft.NET\Framework64\<framework version>\regasm.exe
+0

使用/ regfile我可以在reg文件中看到4個條目,它們是一些枚舉。我看不到我的COM可見的類入口。另一個dll(它已經被註冊並且能夠訪問)在reg文件中有我的COM可見類的詳細信息。我的程序集是COM可見的,並且使用[ComVisibleAttribute(true)]設置我的類 –