1

3 つのプラットフォーム (ios、android、wp7.5) 用の単純な DataAccess ポータブル クラス ライブラリを作成しようとしています。私が望むのは、webrequests を作成し、データを変換して、各プラットフォームの UI に返すことだけです。

このようなライブラリ (ポータブル) を Mac OS X Xamarin Studio で作成し、iPhone アプリで使用することに成功しました。しかし、その後、このソリューションを Visual Studio で (Windows Phone UI プロジェクトを追加するために) 開いたところ、System.Net 名前空間が見つからないという説明とともにビルド エラーが発生しました。ポータブル クラス ターゲットを確認したところ、XBOX が選択されていることにも驚きました。 ここに画像の説明を入力

正しいターゲット (MonoDroid/Monotouch/WindowsPhone7.5) を選択するとコンパイルできましたが、アプリを起動すると次のエラーが表示されました。

"c:\Downloads\Noname.CrossXam\Noname.CrossXam\Noname.CrossXam.iPhone\Noname.CrossXam.iPhone.csproj" (_RemoteBuild ターゲット) (1) -> (_ResolveAssemblies ターゲット) ->
C:\Program Files (x86 )\MSBuild\Xamarin\iOS\Xamarin.MonoTouch.Common.targets(68,3): エラー: アセンブリの読み込み中に例外が発生しました: System.IO.FileNotFoundException: アセンブリを読み込めませんでした 'System.Net, Version=2.0.5.0, Culture =中立、PublicKeyToken=7cec85d7bea7798e'. おそらく、MonoTouch プロファイルには存在しませんか? ...

0 Warning(s)
1 Error(s)

Xamarin Studio を使用した Mac OS X では、同じコード (同じソリューション) が問題なく動作します。サンプル ソリューションはこちら: https://dl.dropboxusercontent.com/u/19503836/Noname.CrossXam.zip

お知らせ下さい。

4

2 に答える 2

1

この問題は、MonoTouch および MonoAndroid プロファイルの下に存在しない System.Net.dll アセンブリにありました。ただし、そのクラスはこれらのプロファイルの下で System.dll に実装されており、それを機能させるには TypeForwardedToAttribute が必要です。

そのタイプの転送構成はすべて、nuget を更新した後にのみインストールできた MVVMCross nuget パッケージに存在します (この投稿の最後のコメント: http://slodge.blogspot.com/2013/04/my-current-pcl-setup- in-visual-studio.html )

そのため、2 つの問題がありました: 1. 古い nuget パッケージ マネージャー (更新が必要です) 2. TypeForwardedToAttribute 構成 (MvvmCross に存在します)

誰かに役立つことを願っています。

于 2013-07-17T00:03:18.083 に答える
0

ターゲット フレームワークを .Net 4.5 に変更しようとしましたか? .csproj ファイルに Profile104 が表示されます。

于 2013-07-16T14:03:49.820 に答える