PCL在MonoTouch和MonoDroid中可以很好地工作。MonoTouch/MonoDroid中的便攜式類庫強大的程序集引用問題
但是,有時,當我使用的變量在PCL來引用類型,然後我嘗試使用在MonoX客戶端相同的參考,則編譯器將失敗,這樣的消息:
類型'System.Collections.Specialized.INotifyCollectionChanged'在未引用的程序集中定義。您必須添加對程序集「System.Windows,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e,Retargetable = Yes」的引用。
這裏的問題是,在我的MonoDroid的PCL System.Collections.Specialized.INotifyCollectionChanged
在墊片轉發類型DLL提供 - 像https://github.com/slodge/MvvmCross/tree/vnext/Cirrious/System.Windows - 顯然是DLL不能使用Microsoft的私鑰簽名。
一些更多的信息:
- 這是常見的像ICommand的接口和INotifyCollectionChanged
- 似乎只發生在.EXE項目(庫莫名其妙工作確定)
- 我主要測試/建築在VS2010和VS2012
- 一些在:https://github.com/slodge/MvvmCross/issues/41
能anyo ne建議任何方式來解決這個問題?例如有沒有辦法將強大的組件命名保護關掉?
我認爲這是需要的,如果PCLs是真正的便攜式以外的微軟發佈的.Net實現?
謝謝。我一直在運行代碼 - 所以你關於缺少運行時驗證的斷言似乎是正確的。我必須仔細研讀答案中的步驟以瞭解它們。我從來沒有做過任何代碼簽名,所以你的許多指令聽起來像是一門外語:)在我有一些工作後會回來更多的反饋。 – Stuart