在将 Npgsql 与 Mono 一起使用时无法解析 System.Security.Cryptography.CngK

本文关键字:System Security CngK Cryptography Npgsql Mono 一起 在将 | 更新日期: 2023-09-27 18:32:00

我正在尝试在单声道应用程序中使用Npgsql(在Xamarin Studio中为Mac构建)。 我以前使用的是Npgsql 2.x,这对我来说效果很好,尽管在另一台机器上给了我们与SSL相关的神秘错误。 所以昨天我升级到了Npgsql的最新(3.0.5)版本,但现在当我尝试构建时,我收到一个错误:

错误 MM2002:无法解决 "System.Security.Cryptography.CngKeyBlobFormat System.Security.Cryptography.CngKeyBlobFormat::get_EccPublicBlob()" 参考自"系统核心,版本=4.0.0.0,区域性=中性, 公钥令牌=b77a5c561934e089"

我在Xamarin论坛上发布了关于这个的文章,并被告知"poking around mono,mcs/class/System.Core/System.Security.Cryptography/CngKeyBlobFormat.cs存在,但目前不包含在任何构建中。

我对单声道还比较陌生,不知道如何从这里开始。 我需要做什么才能在我的单声道Mac应用程序中使用Npgsql?

在将 Npgsql 与 Mono 一起使用时无法解析 System.Security.Cryptography.CngK

"poking around mono,mcs/class/System.Core/System.Security.Cryptography/CngKeyBlobFormat.cs存在,但目前未包含在任何构建中。

这意味着该类不包含在此文件中。

现在,鉴于此类位于Microsoft的源代码中,您应该创建一个链接到该类的拉取请求(通过相对路径,就像其他类已经链接一样),并删除旧的 Mono 实现。

注意:创建拉取请求(这很容易)后,如果您的更改是否破坏了构建,Jenkins 机器人将通知您。如果它破坏了它,很可能是因为这个类依赖于其他一些(然后,要修复它,只需在 .sources 文件中添加一个新条目;继续这样做直到它通过)。

更新:鉴于您似乎不愿意自己为解决问题做出贡献,我继续自己修复它,提出了这个拉取请求,该请求已于今天合并。这意味着单声道 4.3(或 4.4)将包含修复程序。

相关文章: