我在Visual Studio 2013中遇到了与C#有关的一些dll问题。我可以运行这个AP硬件演示,但我无法将dll导入到我自己的项目中,或者重新导入到演示中。从视觉工作室的角度来看,我认为我做错了什么。
我正在使用此处找到的AP2700演示:http://www.ap.com/download/api它通过视觉工作室开箱即用,但我无法弄清楚" AP"在示例项目中添加了引用。 " Audio Precision AP2700 3.00对象库"在COM引用中检查,但当我删除它并尝试再次添加它时,我收到一个错误:"对Audio Precision AP2700 3.00对象库的引用'无法添加。"
这是示例项目的图片,工作正常
这是删除dll然后尝试重新添加dll的图片
以下是AP参考的属性:
事实证明解决方案是还有另一个.dll要添加,名为Interop.AP.dll。添加之后,它将给出与嵌入式互操作相关的一些错误。进入属性并将嵌入式互操作转为false。有谁知道这个名字为什么不匹配? " Interop.AP" vs原作" AP"?
答案 0 :(得分:0)
示例项目不直接引用COM库,而是引用bin文件夹Interop.AP.dll
中的主interop程序集。我认为添加COM引用对话框可能会阻塞对原始COM对象的引用,因为它是一个可执行文件而不是DLL。
如果要重新创建主互操作程序集,可以使用tlbimp工具执行此操作。
运行VS2013命令行工具:
> cd c:\Program Files (x86)\Audio Precision\AP2700
> tlbimp ap2700.exe/1 /out:c:\tmp\Interop.AP.dll
现在,您可以使用普通的.NET参考作为对新创建的互操作程序集的引用添加它。
不要忘记在引用的属性中将embed设置为false。
此外,为了回应其中一条评论,我不相信64位是一个问题(AP2700软件是32位),因为COM正在进行中。