3

私は現在、MonoTouch アプリを構築しており、他の将来のプラットフォームとの間でできるだけ多くのコードを共有したいと考えています。共通コードに PCL を使用するのが最善の方法であると考えました。

問題は、PCL ライブラリで System.Collection.Generic.List<T> を参照しようとすると、MONoDevelop がリストのテキストを赤で強調表示する (参照が見つからないかのように) ことですが、プロジェクトをビルドすると、コンパイラに問題はなく、正常にビルドされます...

たとえば、PCL に次のコードを含めることができます。

MonoDevelop が誤った解決エラーを強調表示する

MD はこれを問題なくコンパイルし、このメソッドは MT アプリから使用できます。

ただし、コンパイルする必要があるコードがコンパイルされないと考える途中で誤解を招き、IntelliSense の多くの利点が失われているため、作業するのはイライラします。

コンパイラの切り替えについて記載されている解決策を試しましたが、役に立ちませんでした。これを修正する方法について誰かが提案してくれることを願っていますか?

興味のために、Intellisense が System.Collections.Generic 名前空間について私に与えるものは次のとおりです (そのリストには 1 つの項目が表示されていません - Stack<T>)。

PCL プロジェクトを使用した MonoDevelop の System.Collections.Generic の IntelliSense リスト

また、MonoDevelop v3.0.5、Mono v2.10.9、MT v6.0.6 を使用していることにも言及する必要があります。

4

1 に答える 1

3

MonoDevelop 3.x のポータブル クラス ライブラリのサポートは、Linux と Mac のハックです。これらのプラットフォームには PCL アセンブリがないためです (Mono には PCL アセンブリがありません)。

MonoDevelop が Mac または Linux (実際の PCL アセンブリが利用できない) で PCL プロジェクトをコンパイルするとき、ハッキングされた Microsoft.Portable.CSharp.targets ファイルを使用して MonoTouch または Mono4Android アセンブリ (利用可能な場合) を参照します。 .NET 4.0 アセンブリに対して。

表示されている特定の問題は、MonoDevelop がシステム上の真の PCL mscorlib/System/etc PCL アセンブリを見つけられないことが原因です。

于 2012-12-06T23:09:43.977 に答える