我已经使COM可见的类库-但是我不能通过COM> Type Libraries添加对它的引用-相反,它告诉我“向.net程序集添加引用”,这很好并且丹迪,但我在列表中找不到该程序集(即使它在COM类型库中可见)
现在-我知道我可以添加对整个项目的引用并开始实例化我的类,但是我真的不想这么做。我不希望那里有多余的项目能够开始更改该引用项目中的内容。
我只想添加对其程序集名称的引用-我可以这样做还是必须始终通过项目添加?如果仅通过添加项目,那么我可以完全锁定该项目,因为它是参考项目?
答案 0 :(得分:0)
您有两种方法:
仅引用从您的项目构建的DLL。例如,您可以将DLL复制到目标项目中的项目本地文件夹中,然后进行引用。
安装要在GAC中引用的DLL。它必须具有一个强名称,无论如何都建议使用该名称,并且对于DLL的每个新版本都需要重复使用该名称,因为GAC保留文件的副本,这与COM注册表不同,COM注册表仅引用库和typelib。
不能仅按程序集名称进行引用,因为编译器需要了解有关目标程序集包含类的详细信息才能运行构建过程。
通过COM引用程序集会做完全不同的事情,即,解析是通过CreateInstance运行的,CreateInstance在注册表中搜索类GUID,甚至可能将代理返回到远程主机。
答案 1 :(得分:0)
您需要去属性 - >构建 - >检查“注册为COM Interop”。这会将您的类库签名并注册为计算机中合格的Interop COM DLL。您可能已经错过了