日期:2014-05-17  浏览次数:21166 次

引用.dll遇到的问题
我的C#程序中要用到两个.dll动态链接库(我们使用了两个外部设备,这两个.dll都是设备厂家附带的)。但在调用时会报错,比如,在调用中使用这条语句:
openresult = StaticClassReaderB.AutoOpenComPort(ref port, ref fComAdr, fBaud, ref frmcomportindex);

结果在编译程序时就会报错:

错误 15 类型“ReaderB.StaticClassReaderB”同时存在于“e:\vs2010项目\开发项目(单向)版\Weighing\bin\Debug\YXU9809CSharp.dll”和“e:\vs2010项目\开发项目(单向)版\Weighing\bin\Debug\YXU1861CSharp.dll”中

遇到此种情况应该如何处理呢?谢谢指教!

------最佳解决方案--------------------
这两个dll提供的命名空间完全一样吗?要是完全一样的话并且不能用最新的dll覆盖老的dll的功能的话则说明厂家考虑的不够全面了,或者没有考虑到在一个程序中使用它们的两种型号的设备,呵呵
------其他解决方案--------------------
如果命名空间不同,你通过命名空间进行类型的完全限定试下,否则在操作设备的地方只能分别针对两个型号的分别建项目了
------其他解决方案--------------------
把DLL放在bin文件,如果需要注册就注册。不需要直接项目右键添加引用。删除debug
------其他解决方案--------------------
你把两个dll的方法分别调用到本地的两个类中,命名为不同的方法名,在从这两个类调用,就可以解决不兼容问题了
------其他解决方案--------------------
是.Net的DLL咩
------其他解决方案--------------------
还有其它的好方法吗?
------其他解决方案--------------------
你要确定下是不是NET下面的dll。有可能是C++,VC,C语言的dll。那调用方法不同