【发布时间】:2012-10-23 10:21:46
【问题描述】:
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 实现之外真正可移植,我认为这是必要的?
【问题讨论】:
标签: xamarin.ios xamarin.android portable-class-library