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 - 显然该 DLL 无法使用微软的私钥。
更多信息:
- 这在 ICommand 和 INotifyCollectionChanged 等接口中很常见
- 它似乎只发生在 .exe 项目中(库以某种方式工作正常)
- 我主要在 VS2010 和 VS2012 中测试/构建
- 更多内容:https ://github.com/slodge/MvvmCross/issues/41
任何人都可以提出任何解决此问题的方法吗?例如,有没有办法关闭强大的程序集命名保护?
我认为如果 PCL 要在 Microsoft 提供的 .Net 实现之外真正可移植,这是需要的?