2014-08-27 75 views
1

我已經開發(VB.Net)在VS2010一個DLL在Excel(視窗7的64位與32位Office 2010)部署一個DLL(COM對象)到Excel VBA參考

類庫既具有使用'使彙編COM可見'&'註冊COM互操作'選中。

使用.Net 4.0 Framework將目標CPU設置爲x86。

當我在我的開發機器上構建這個DLL時,可以在Excel vba中選擇DLL作爲參考,並且Excel正確執行DLL。

當我嘗試將DLL部署到其他Window 7計算機時,問題就出現了。

我已經成功(?),使用下面的命令行(作爲管理員)中登記的DLL

C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe "C:\Program Files\CompanyName\XXX_DLL.dll"

然而,DLL沒有出現在Excel VBA被選擇作爲參考。

我在哪裏犯了一個錯誤/我在做什麼錯了?

很多謝謝。

+0

Excel需要的*類型你忘記了/ tlb:filename選項,如果你不使用/ codebase,它也必須安裝在GAC中 – 2014-08-27 12:23:18

+0

Thanks Hans,這是完美的工作。道歉沒有看到原來的職位。 – 2014-08-27 12:34:49

回答

0

您需要的/codebase參數添加到調用RegAsm如果你想註冊一個COM組件是不是在GAC

試試這個:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe "C:\Program Files\CompanyName\XXX_DLL.dll" /codebase

Documentation for RegAsm

您還需要用強名稱在您的程序集上簽名。

注意「註冊爲COM Interop」只適用於在其上構建發生(避免你每次構建後運行RegAsm機器。在部署時它並沒有影響。