Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ADODB 2.7 COM参考不再在VS2012中注册 Visual Studio 2012 VB.Net .NET4.0 生成机器x64 构建配置任意CPU msado27.tlb_Vb.net_Reference_Com_Adodb - Fatal编程技术网

ADODB 2.7 COM参考不再在VS2012中注册 Visual Studio 2012 VB.Net .NET4.0 生成机器x64 构建配置任意CPU msado27.tlb

ADODB 2.7 COM参考不再在VS2012中注册 Visual Studio 2012 VB.Net .NET4.0 生成机器x64 构建配置任意CPU msado27.tlb,vb.net,reference,com,adodb,Vb.net,Reference,Com,Adodb,该项目并非新项目,在过去2年中已经建设了100多次。在过去的3周内,发生了一些变化,无法再注册对Microsoft ActiveX Data Objects 2.7库的COM引用。当我试图从可用的COM条目中重新选择它时,它是可见的和可选择的 选择后,您可以看到黄色三角形 然后通过its属性查看它,您可以看到没有显示任何路径 通过项目属性->参照查看时,将显示 如果我选择更新的版本,如2.8、6.0或6.1,他们将注册。但是,如果选择较旧的2.5版本,其作用方式相同 关于可能发生的情况或

该项目并非新项目,在过去2年中已经建设了100多次。在过去的3周内,发生了一些变化,无法再注册对Microsoft ActiveX Data Objects 2.7库的COM引用。当我试图从可用的COM条目中重新选择它时,它是可见的和可选择的

选择后,您可以看到黄色三角形

然后通过its属性查看它,您可以看到没有显示任何路径

通过项目属性->参照查看时,将显示

如果我选择更新的版本,如2.8、6.0或6.1,他们将注册。但是,如果选择较旧的2.5版本,其作用方式相同

关于可能发生的情况或如何验证GAC或主互操作程序集中的.dll是否实际具有版本2.7的定义和/或实现,是否有任何建议或理论


顺便说一下,我意识到这是一个非常古老的版本,但是当前的.Net项目有额外的COM引用/依赖项,这些引用/依赖项依赖于此特定版本,我现在无法切换到新版本。

经过痛苦的一天和大量浪费的时间后,我决定再次使用regasm重新注册类型,我认为这并不是我真正有机会做到的解决问题。瞧,这就是问题所在

对我的修复

  • 以管理员身份打开VS2012的开发人员控制台
  • 导航到adodb.dll的GAC区域@ %windir%/assembly/gac/adodb/7.0.3300.0__b03f5f7f11d50a3a
  • 然后运行命令“regasm adodb.dll”,您应该会收到 “类型注册成功”消息
  • 返回VS2012和所有当前对的引用
  • 注意:早些时候,在查看adodb.dll文件中找到的类型库的注册表值时,我注意到不会在VS(2.7、2.6和2.5)中注册的版本与较新版本相比,没有这些键的主互操作程序集值。运行regasm后,这些值被添加到旧版本中