我在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中,无法选择作为参考。
我在哪里犯了错误/我做错了什么?
非常感谢。
答案 0 :(得分:0)
如果您希望注册不在GAC中的COM程序集,则需要将/codebase
参数添加到对RegAsm的调用中
试试这个:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe "C:\Program Files\CompanyName\XXX_DLL.dll" /codebase
您还需要使用强名称对程序集进行签名。
请注意,“注册COM Interop”仅适用于构建所在的计算机(避免在每次构建后运行RegAsm。在部署时无效。