0

试图将 BouncyCastle c# dll 添加到我的 WP8 本机应用程序中。

  • 我为 Windows Phone 8 创建了一个 Windows 运行时组件
  • 我扭曲组件中现有的 C# dll 并创建 MyBouncyCastleComponent.winmd
  • 我打开我的 WP8 本机项目,并将 winmd 添加为参考

结果: 在编译时 “警告:没有为 .winmd 文件提供实现文件”

在运行时它崩溃,当我停止模拟器时,我得到“WinRT 信息:未注册的类”(它比这长得多,抱怨 Windows.winmd 和 System.Windows.RuntimeHost.ni.dll 等窗口文件中缺少 PDB 文件)

我用ILDASM打开了winmd。解密和加密的实现有吗?我究竟做错了什么?

MyBouncyCastleComponent.winmd 用 ildasm 打开

我知道它被问过没有为 .winmd 文件提供实现文件,但还没有答案。我再次尝试...(无法弄清楚如何将其添加为问题)

编辑:

只是一个澄清。当我说:“我在组件中扭曲现有的 C# dll 并创建 MyBouncyCastleComponent.winmd
时,我所做的是将 BouncyCastle代码放入运行时组件中,并带有一个包装器类,以公开我需要的 BouncyCastle 方法。

4

1 回答 1

0

看起来您非常想尝试获得一个为完整的 .NET 框架编译的 C# DLL,以便在 Windows Phone 上工作。Windows Phone 使用不同的 .NET 配置文件,并且与完整的 .NET 框架不二进制兼容,因此这不起作用。

对于 BouncyCastle,您将需要引用专门为 Windows Phone 构建的二进制 DLL - 例如通过自己从 BouncyCastle 源代码构建一个。

更新:当您使用 BouncyCastle 的子集时,您可以将所需的源代码放入可移植类库项目中,以便可以直接在 Windows Phone 和 Windows Store 应用程序中使用。

于 2013-01-01T16:54:19.767 回答