编译适用于Windows Phone 8.0的OpenSSL

时间:2015-05-25 11:12:22

标签: c# windows-phone-8 dll visual-studio-2013 openssl

我尝试使用此repo为WP 8.0编译OpenSSL。 https://github.com/Microsoft/openssl

我是怎么做的:

  1. 在源根树中执行以下脚本。

      

    MS \ do_vsprojects.bat

  2. 打开Visual Studio解决方案

      

    VSOUT \ openssl.sln

  3. 运行单元测试应用程序项目

  4.   

    ms \ do_packwinapp.bat

  5. 最后,我从路径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."
    

    我做错了什么?

2 个答案:

答案 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