部署一个DLL(COM对象)到Excel VBA参考

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

类库具有“使程序集COM可见”和“注册COM互操作”选中。

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

当我在开发计算机上构build这个DLL时,可以在Excel vba中selectDLL作为参考,Excel将正确执行DLL。

当我试图将DLL部署到其他Window 7机器时,问题出现了。

我已成功(?)使用以下命令行注册DLL(作为pipe理员)

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

但是DLL不会出现在Excel vba中作为参考select。

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

非常感谢。

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

尝试这个:

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

RegAsm文件

您还需要用强名称在您的程序集上签名。

请注意,“注册COM Interop”仅适用于进行构build的机器(避免在每次构build之后运行RegAsm,部署时不起作用。