我尝试使用此repo为WP 8.0编译OpenSSL。 https://github.com/Microsoft/openssl
我是怎么做的:
在源根树中执行以下脚本。
MS \ do_vsprojects.bat
打开Visual Studio解决方案
VSOUT \ openssl.sln
运行单元测试应用程序项目
ms \ do_packwinapp.bat
最后,我从路径ssleay32.dll
获得了两个dll libeay32.dll
和"\openssl\vsout\package\bin\Phone\8.0\Dll\Unicode\Release\arm"
。我试图将这个dll添加到我的WP8.0项目中,我收到错误:
"A reference to a higher version or incompatible assembly cannot be added to the project."
我做错了什么?
答案 0 :(得分:0)
这些库是为Windows Phone以外的目标平台编译的。
请参阅VS中的这些库的构建选项。
答案 1 :(得分:0)
您正在尝试将这些C ++ .dll直接链接到您的C#代码(为了验证这一点,我在VS中尝试了同样的错误并得到了同样的错误)。这不起作用。
您需要做的是在C#手机解决方案中创建一个C ++项目。在VS 2015中,右键单击解决方案 - >添加新项目 - > Visual C ++ - > Windows - > Windows 8 - > Windows Phone - > Windows运行时组件(8.0 / 8.1 / silverlight有多个选项)。选择与您的手机应用匹配的那个。)
在这个新的基于c ++的Windows Phone运行时组件项目中,您将能够编写和调用c ++代码。 OpenSSL dll需要链接到这个c ++项目。
我只是尝试在我的Windows手机项目中链接openssl静态库并且它有效(花了一段时间,但它确实有效)。
您应该能够在google上找到有关如何为Windows Phone应用程序编写C ++代码的更多信息。这可能是一个很好的起点:https://msdn.microsoft.com/en-us/library/windows/apps/hh441569%28v=vs.110%29.aspx