gpt4 book ai didi

c# - TypeInitializationException 使用 OpenSsl.net

转载 作者:太空宇宙 更新时间:2023-11-04 13:43:24 28 4
gpt4 key购买 nike

我正在尝试使用 OpenSsl.net,但我收到了 TypeInitializationException,这让我很困惑。设置是:

  • 我有一个控制台应用程序,它有一个对 openssl.net 的项目引用(事实上,我正在使用这里的分支:https://github.com/marcominetti/openssl-net)
  • 我已经在我的机器上编译了 openssl(用于 32 位 Windows)并将 libeay32.dll 和 ssleay32.dll 复制到我的控制台应用程序的 bin/Debug 文件夹中。
  • bin/Debug 文件夹还包含 libcrypto.so
  • 我的机器是 64 位的(openssl 的 64 位构建失败但这是另一个问题)
  • 控制台应用程序设置为 x86 平台目标

但是,在运行时我得到一个 TypeInitializationException 的详细信息:

无法加载 DLL“librypto”:找不到指定的模块。 (HRESULT 异常:0x8007007E)

我做错了什么?

最佳答案

所以我终于想通了。

在仔细查看 fork 中的代码后,它看起来更适合 linux 环境而不是 windows(这是我正在使用的操作系统 - 可能应该提到......)

在 Native.cs 中,它将 DLLNAME 指定为 libcrypto 而不是 libeay32。看来这可能适用于 linux 系统而不是 windows。

托管开放 ssl 的 app.config 确实包含一些 dllmap 部分,这些部分似乎试图将对 libcrypto 的请求重定向到 libeay32.dll 但这似乎不起作用(我不知道这是否仅适用于单声道?)。

我已将 DLLNAME 设置为 libeay32,一切似乎都按预期工作。

关于c# - TypeInitializationException 使用 OpenSsl.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26912379/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com