现有COM参考错误或添加新参考

时间:2013-01-09 14:45:45

标签: c# visual-studio-2010 reference assemblies

让我先说一下,我不熟悉COM引用,我在Windows 7 64位机器上使用VS2010。今天早上我从TFS中删除了一个现有项目。然后我尝试构建项目并收到此错误:

  

找不到类型或命名空间名称'validatecom'(您是否缺少using指令或程序集引用?)

我收到了这个警告:

  

无法获取类型库“d0b51ccc-aa31-47a1-b3ff-b8ed71c522a1”1.0版的文件路径。图书馆未注册。 (HRESULT的例外情况:0x8002801D(TYPE_E_LIBNOTREGISTERED))

当我检查引用时,确定,我在解决方案中唯一的COM引用中看到了黄色感叹号。经过一些无效的测试,我决定尝试添加一个新的COM参考。

添加参考 - > COM标签 - >随机M $库

这导致带有黄色感叹号的新引用。我尝试构建项目以查看是否出现相同的错误。这次我收到这个错误:

  

使用GUID'23d736f1-acbc-11d3-b0e8-00104bff2710'遇到程序集的多个版本。尝试预先导入其中一个程序集。

我收到了这个警告:

  

找不到类型库“ADODB”的包装程序集。

我不知道这两个错误是否相关。如果没有,那么解析第一个肯定优先于最后一个。

1 个答案:

答案 0 :(得分:4)

要检查的另一件事是你的COM库是否在Windows注册表中注册,你可以这样做:

  

%windir%\ system32 \ regsvr32 YourComLibrary.dll

接下来,您需要创建一个互操作.NET DLL,它包装您尝试在C#项目中引用的COM库。执行此操作的方法是运行类型库导入程序实用程序(使用Visual Studio 2010命令提示符):

  

tlbimp.exe YourComLibrary.dll /out:YourWrappedComLibrary.dll

对于ADODB参考,您可能需要参考 ADO的主互操作程序集(ADODB)。这可以在您的机器上的以下位置找到。添加对此的引用,你应该很好。

  

C:\ Program Files(x86)\ Microsoft.NET \ Primary Interop   组件\ adodb.dll

希望上面的内容让你前进。自从我搞砸COM以来已经太久了......内存可能有点模糊。享受!