3

Mono for Android を使用するプロジェクトに取り組んでいます。Xamarin でクロスプラットフォーム ドキュメントを読んだ後。別のプロジェクトにデータ レイヤーがあり、それを Mono for Android プロジェクトに移動し、それらのファイルを Mono Touch プロジェクトにリンクし、いつか Windows Phone 8 プロジェクトにリンクする予定でした。

コードを移動したところ、System.Xml.Linq 参照のためにコンパイルできなくなりました。参照は Mono for Android プロジェクトに表示されますが、使用できません。Froyo を狙うことが問題かもしれないと思いましたが、プロジェクトを Gingerbread または Ice Cream Sandwich にアップグレードしても問題は解決しませんでした。

私が間違っていることを誰かが知っていますか?私はベテランの .NET 開発者であり、プロジェクトで参照がどのように機能するかをよく知っていますが、これには困惑しています。

元のコードが取り組んでいたプロジェクトは、Mono/.NET 4 フレームワークを対象としていた

4

1 に答える 1

2

System.Xml.Linq への参照は、.Net バージョンまたは Mono バージョンを指していますか? Mono のバージョンは 2.0.5.0 です。

Mono System.Xml.Linq リファレンス

また、Android クラス ライブラリ/アプリケーションまたは通常の .Net クラス ライブラリの System.Xml.Linq への参照です。.Net クラス ライブラリの場合は、プロジェクト参照ではなく、コンパイル済み (dll) 参照として Android アプリケーションのライブラリを参照してみます。これは完璧なソリューションではありませんが、複数のソリューションで使用するライブラリを参照する必要がある場合に機能することがわかりました。参照は通常うまくいきますが、Mono バージョンでサポートされていないものがあれば、問題が発生する可能性があります。

コードがクラス ライブラリにあると仮定すると、ライブラリ プロジェクトの Mono 固有のバージョンを作成するのが最善の策かもしれません。同じクラス ファイルをインポートして使用できますが、条件付きコンパイル シンボルをいくつか追加して、Mono 用に適切にコンパイルするだけです。これに慣れていない場合は、Json.NetまたはServiceStackが複数のプラットフォームのコードを管理する方法をご覧ください。

于 2012-12-18T01:37:41.227 に答える