将DLL(COM对象)部署到Excel vba引用

时间:2014-08-27 12:01:07

标签: .net vb.net excel com com-interop

我在VS2010中开发了一个DLL(VB.Net),用于Excel(Windows 7 64位,32位Office 2010)

类库具有“使组件COM-Visible”和“ '注册COM互操作'已经检查。

使用.Net 4.0 Framework将目标CPU设置为x86。

当我在我的开发机器上构建它时,DLL可以在Excel vba中选择作为参考,并且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中,无法选择作为参考。

我在哪里犯了错误/我做错了什么?

非常感谢。

1 个答案:

答案 0 :(得分:0)

如果您希望注册不在GAC中的COM程序集,则需要将/codebase参数添加到对RegAsm的调用中

试试这个:

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

Documentation for RegAsm

您还需要使用强名称对程序集进行签名。

请注意,“注册COM Interop”仅适用于构建所在的计算机(避免在每次构建后运行RegAsm。在部署时无效。