我尝试使用 ZeroMQ在新项目中。
服务器和客户端必须通过ZeroMQ进行交互(交换消息)。 计划实现Android,Windows等几种客户,可能是另一种。 我想在PCL中建立交互的基本逻辑。
Visual Studio 2013 + Xamarin
我创建了PCL项目,NuGet安装了clrzmq包。 创建测试方法:
public string M1()
{
using (var c = new Context())
{
var subscriber = c.Socket(SocketType.SUB);
subscriber.Bind(Transport.TCP, "192.168.123.23:9292");
subscriber.Subscribe("", Encoding.UTF8); // subscribe to all messages
var message = subscriber.Recv(Encoding.UTF8, SendRecvOpt.NONE);
return message;
}
}
当我在Android项目中调用此方法时,我看到DllNotFoundException。 问题描述于 this question (但对于Android)
代码编译,但在运行时 - libzmq.dll错误DllNotFoundException。
您能否告诉我如何正确配置libzmq?
答案 0 :(得分:0)
阅读xamarin的帖子,以及我对Xamarin中PCL限制的经验。这不是一个选择。当您导入ZeroMQ时,它会将X86和amd64的二进制文件添加到项目中。这些二进制文件允许它在X86 / amd64平台上使用单声道框架,而不是arm(android / ios / windows phone)。
同样在What is a Portable Class Library?的Xamarin文档中,它有缺点列表
DLLNotFoundException可能来自缺乏DllImport支持