这个项目并不新鲜,在过去的两年里已经建成了100多次。在过去3周内,某些内容发生了变化,并且无法再注册对Microsoft ActiveX Data Objects 2.7库的COM引用。当我尝试从可用的COM条目中重新选择它时,它是可见的和可选择的。
选择后,您可以看到黄色三角形
reference tree node with yellow triangle
然后通过其属性查看它,您可以看到没有显示路径。
通过项目属性查看时 - >引用它显示
如果我选择较新的版本,如2.8,6.0或6.1,他们将注册。但是,如果我选择较旧的2.5,它的行为方式相同。
关于可能发生的事情或如何验证GAC或主要互操作程序集中的.dll是否实际上具有2.7版的定义和/或实现的任何建议或理论?
顺便说一句,我确实知道这是一个非常古老的版本,但是这个当前的.Net项目有额外的COM引用/依赖,这依赖于这个特定的版本,我现在无法切换到更新的版本。
经过痛苦的一天和浪费了很多时间之后,我决定再次使用regasm重新注册类型的路线,我认为没有机会解决这个问题。低,看到这是问题。
我的修复......
注意:在查看adodb.dll文件中找到的类型库的注册表值的早期,我注意到在VS(2.7,2.6和2.5)中未注册的版本没有主键的Interop组装值。较新版本的确如此。运行regasm后,为旧版本添加了这些值。
Shows primary interop assembly info for v2.7 after running regasm