我在Visual Studio 2013中遇到了C#与dll相关的问题。我可以运行此AP硬件演示,但是无法将dll导入到我自己的项目中,也无法将dll重新导入到演示中。从视觉工作室的 Angular 来看,我认为我做错了什么。
我正在使用在此处找到的AP2700演示:http://www.ap.com/download/api通过Visual Studio开箱即用,但是我无法弄清楚在示例项目中如何添加“AP”引用。在COM引用中检查了“Audio Precision AP2700 3.00对象库”,但是当我删除它并尝试再次添加它时,出现错误:“无法添加对“Audio Precision AP2700 3.00对象库”的引用。 ”
这是示例项目的图片,效果很好
这是删除dll然后尝试重新添加dll的图片
以下是AP引用的属性:
事实证明,解决方案是要添加另一个名为Interop.AP.dll的.dll。添加后,它将给出一些与嵌入式互操作有关的错误。进入属性,然后将嵌入式互操作设置为false。有谁知道为什么名字不匹配? “Interop.AP”与原始“AP”?
最佳答案
示例项目没有直接引用COM库,而是引用了bin文件夹Interop.AP.dll
中的主互操作程序集。我认为添加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发生了故障。
关于c# - 如何修复 “A reference to ' Audio Precision AP2700 3.00对象库'无法添加”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28420862/