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

Windows Phone で動作する完全な .NET フレームワーク用にコンパイルされた C# DLL を取得しようと、苦労しているように見えます。Windows Phone は別の .NET プロファイルを使用し、完全な .NET フレームワークとのバイナリ互換性がないため、これは機能しません。

BouncyCastle の場合、Windows Phone 用に特別にビルドされたバイナリ DLL を参照する必要があります。たとえば、BouncyCastle ソース コードから自分でビルドするなどです。

更新: BouncyCastle のサブセットを使用しているため、必要なソース コードをポータブル クラス ライブラリ プロジェクト内に配置して、Windows Phone アプリと Windows ストア アプリの両方で直接使用できる場合があります。

于 2013-01-01T16:54:19.767 に答える