PCLは、MonoTouchおよびMonoDroidで適切に機能します。
ただし、変数を使用してPCLで型を参照し、MonoXクライアントで同じ参照を使用しようとすると、コンパイラが次のようなメッセージで失敗することがあります。
タイプ'System.Collections.Specialized.INotifyCollectionChanged'は、参照されていないアセンブリで定義されています。アセンブリ'System.Windows、Version = 2.0.5.0、Culture = neutral、PublicKeyToken = 7cec85d7bea7798e、Retargetable=Yes'への参照を追加する必要があります。
ここでの問題は、MonoDroidではSystem.Collections.Specialized.INotifyCollectionChanged
PCLがshimタイプ転送DLL(https://github.com/slodge/MvvmCross/tree/vnext/Cirrious/System.Windowsなど)で提供されていることと、明らかにMicrosoftのを使用してDLLに署名できないことです。秘密鍵。
いくつかの詳細:
- これは、ICommandやINotifyCollectionChangedなどのインターフェイスでよく見られます
- .exeプロジェクトでのみ発生するようです(ライブラリはどういうわけか問題なく動作します)
- 私は主にVS2010とVS2012でテスト/構築しています
- https://github.com/slodge/MvvmCross/issues/41でさらにいくつか
誰かがこれを解決する方法を提案できますか?たとえば、強力なアセンブリ命名保護をオフにする方法はありますか?
PCLがMicrosoftが出荷した.Net実装の外で真にポータブルであるためには、これが必要だと思いますか?