Xamarin の学習を始めたばかりで、PCL で標準の SQLite.Net を使用できないなど、多くの障害に遭遇しました。
成功せずに他の多くのソリューションを試した後、MvvmCross がこれまでのすべての問題を完全に解決したことがわかりました。
スチュアートを高く評価してください。本当に素晴らしい仕事です!
今、考えているのですが、ASP.Net Web プロジェクトも必要な場合はどうすればよいでしょうか? 「コア」プロジェクト (すべてのプラットフォームで共有されるプロジェクト) を引き続き再利用できますか?
HTML UI の場合、ViewModel はサーバー上にあり、UI はクライアント上にあるため、UI 要素を ViewModel にバインドできないことはわかっています (実際、現在の Web プロジェクトでは、ViewModel を JSON シリアル化して送信します)。それをクライアントに送信し、Knockout.js を使用してバインディングを行います)。
ただし、Web プロジェクト用に ViewModel のロジックを書き直す必要がある場合でも、「コア」プロジェクトを再利用することは非常に有益です。
そこで、ASP.Net MVC プロジェクトを作成し、MvvmCross と MvvmCross Sqlite プラグインを使用する「Core」プロジェクトを参照してみました。
そして、nuget を使用して Web プロジェクトで MvvmCross への参照を取得すると、取得する "MvvmCross のプラットフォーム固有のバージョン" は WPF バージョンです (どちらも .Net Framework を使用しているためだと思います)。WPF が必要とする他の dll を参照する必要があるだけなので、これは問題にはなりません。
しかし、本当の問題は、Web プロジェクトを実行するとエラーが発生することです。
DLL 'sqlite3' をロードできません: 指定されたモジュールが見つかりませんでした。
Google の検索結果に基づいて、「System.Data.SQLite.dll」というファイルの名前を「sqlite3.dll」に変更すると、別のエラーが発生します。
ファイルまたはアセンブリ 'sqlite3' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
それから私は立ち往生しました。それで、私は何かが欠けているのでしょうか、それとも単にうまくいかないのでしょうか?
ところで、WPF UI プロジェクトも作成しましたが、最初のエラーも発生しましたが、ファイル「System.Data.SQLite.dll」の名前を「sqlite3.dll」に変更した後、すべて正常に動作し、 2 番目のエラー。そして、Nuget から取得した「System.Data.SQLite.dll」は x86 バージョンです。
ありがとう