0

最近 Xamarin と MvvmCross を使い始めました。私の最初のプロジェクトを構築するのに忙しい。.Core プロジェクトと ViewModel を作成し、Nuget パッケージを Visual Studio にインストールしました。私の.Droidプロジェクトを作成し、Nugetパッケージをインストールしました。最初のビューを作成し、アプリケーションを実行しようとしています。ただし、次の例外が発生します。

Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'Cirrious.MvvmCross.Binding.Droid'.

Full stacktrace:
W/        ( 1438): Missing method .ctor in assembly /data/data/XamTest.Droid/files/.__override__/Cirrious.MvvmCross.Droid.dll, type System.Runtime.CompilerServices.ExtensionAttribute
W/        ( 1438): Can't find custom attr constructor image: /data/data/XamTest.Droid/files/.__override__/Cirrious.MvvmCross.Droid.dll mtoken: 0x0a000012
Unhandled Exception:

System.TypeLoadException: 
E/mono    ( 1438): 
E/mono    ( 1438): Unhandled Exception:
E/mono    ( 1438): System.TypeLoadException: Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'Cirrious.MvvmCross.Droid'.
E/mono    ( 1438): at XamTest.Droid.SplashScreen..ctor () [0x00000] in c:\Dev\XamTest\XamTest.Droid\SplashScreen.cs:16
E/mono    ( 1438): at (wrapper dynamic-method) object.38e61b4f-1913-46a5-ba4a-75980457a823 (intptr,object[]) <IL 0x00018, 0x00053>
E/mono    ( 1438): at Java.Interop.TypeManager.n_Activate (intptr,intptr,intptr,intptr,intptr,intptr) [0x0006a] in /Users/builder/data/lanes/monodroid-lion-bigsplash/0e0e51f9/source/monodroid/src/Mono.Android/src/Java.Interop/TypeManager.cs:141
E/mono    ( 1438): at (wrapper native-to-managed) Java.Interop.TypeManager.n_Activate (intptr,intptr,intptr,intptr,intptr,intptr) <IL 0x0001e, 0x000a3>
E/mono    ( 1438): 
I/mono    ( 1438): [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'Cirrious.MvvmCross.Droid'.
I/mono    ( 1438): at XamTest.Droid.SplashScreen..ctor () [0x00000] in c:\Dev\XamTest\XamTest.Droid\SplashScreen.cs:16
I/mono    ( 1438): at (wrapper dynamic-method) object.38e61b4f-1913-46a5-ba4a-75980457a823 (intptr,object[]) <IL 0x00018, 0x00053>
I/mono    ( 1438): at Java.Interop.TypeManager.n_Activate (intptr,intptr,intptr,intptr,intptr,intptr) [0x0006a] in /Users/builder/data/lanes/monodroid-lion-bigsplash/0e0e51f9/source/monodroid/src/Mono.Android/src/Java.Interop/TypeManager.cs:141
I/mono    ( 1438): at (wrapper native-to-managed) Java.Interop.TypeManager.n_Activate (intptr,intptr,intptr,intptr,intptr,intptr) <IL 0x0001e, 0x000a3>
I/mono    ( 1438): 

何か案は?

Xamarin.Studio でソリューションを開くと、Core ライブラリへの参照がエラーとして表示されることに注意する必要があります。

(- 互換性のないターゲット フレームワーク (.Net Portable Subset (.Net for Windows Store、.Net Framework 4.5、Silverlight 4、Windows Phone 7.5))。

ただし、これは別の問題である可能性があり、例外とは関係ありません。

4

3 に答える 3

1

これとまったく同じ問題が発生したときに、私にとってうまくいったのは次のとおりです。

mvvmCross を更新したとき、古いバージョンのモノドロイドを使用していた古いバージョンの Xamarin をまだ使用していました。Xamarin (新しいバージョンでは monodroid 3 を使用) を更新すると、問題が修正されました。

お役に立てれば

于 2013-10-16T13:11:57.467 に答える
0

この問題は、インストールしたホット ツナ スターター パックのバージョンに関連しています。バージョン 3.0.12 をインストールしました。

packages\MvvmCross.HotTuna.MvvmCrossLibraries.3.0.12\lib\MonoAndroid16 にある Cirrious.MVVM および Cirrious.MVVM.Droid dll を Hot Tuna Starter pack V3.0.9 の dll に置き換えると、すべて正常に動作し始めました。(私も3.0.4をテストしましたが、これもうまくいきました)

V3.0.10 と v3.0.11 はテストしていません。v 3.0.13 BETA もテストしましたが、まだ壊れています。

于 2013-09-25T01:20:53.937 に答える
0
  1. 安定版ブランチの Visual Studio 2012 と Xamarin の最新版を使用していますか?

  2. 重要: Visual Studio では、左側の [ツール] メニュー \ [拡張機能と更新プログラム] \ [更新プログラム] タブに移動して、最新の NuGet マネージャーがあることを確認してください。

  3. 新しいテスト プロジェクトを最初からやり直して、次の手順に従うことをお勧めします。

    a) MyApp.Droid という名前の新しい Android アプリと、新しい PCL プロジェクト MyApp.Core を作成します (「.NET Framework 4.5」および「Windows Phone 7.5 以降」をターゲット -これらは、MVVMCross が動作するフレームワークの最小バージョンです) 。

    b) MyApp.Droid へのプロジェクト参照として MyApp.Core を追加します。

    c) NuGet を使用して、「MVVMCross Hot Tuna Starter Pack」をインストールします。安定したブランチが選択されていることを確認します (NuGet ウィンドウの上部にコンボボックスがあります)。

    すべてが正常にコンパイルおよび実行されるはずです。

于 2013-09-25T06:17:50.173 に答える