我对MVVMCross很陌生,但我已经积极地使用它两周,在工作和学校项目中,我真的很享受!不幸的是,我已经被困在学校项目上2天了:我们被要求做一个移动Jabber客户端。这不是什么大问题,因为我开始使用Matrix XMPP库,它完成大部分工作并且易于使用。我决定使用MVVMCross重新启动我的项目,以便拥有更清晰的代码并添加一个Windows Phone项目,但Matrix绝对需要System.Xml.Linq,我无法获得核心PCL进行编译:
The type 'System.Xml.Linq.XElement' is defined in an assembly that is not referenced.
You must add a reference to assembly 'System.Xml.Linq, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
如Stuart Lodge的教程视频中所示,我正在使用配置文件104,故障dll确实存在于文件夹中,我无法手动将其添加到项目的引用中,因为VS阻止我这样做(轻轻解释一下)它自动加载,因为.Net便携式子集包含在参考中),我已经更新并修复了我的VS安装“以防万一”...并且不再有任何想法。
所以,问题如下:
提前致谢!
其他信息:适用于Xamarin.Android的Windows8(x64),VS2012旗舰版,试用许可证(学校项目......)
更新:按照Stuart的回答,我编译并运行了 BestSellers 示例,该示例使用System.Xml.Linq ...没有任何问题。由于它附带了对System.Xml.Linq
的明确引用(请参阅first link in answer),我尝试了:
删除它(和其他几个):VS保留它的承诺,并且只要引用.Net Portable Subset
就真正包含所需的引用,所以一切顺利。
通过记事本手动将此引用添加到 my .csproj:它不会改变任何内容。
Stuart的回答让我感到震惊:“也许这与矩阵使用XML.linq”的方式有关。由于我试图使用的Matrix类型只是System.Xml.Linq.XElement
的后代,它在 BookViewModel.cs from sample中广泛使用,可能出现什么问题?
“解决方案”:问题似乎是由于Matrix需要特殊版本的System.Xml.Linq
,这不是用于构建PCL的配置文件104时所包含的版本。我使用file linking方法作为一种解决方案来共享核心,这是有效的,虽然这不太优雅,可读,并且难以维护......
答案 0 :(得分:1)
是的,至少可以使用一些System.Xml.Linq
例如,请参阅BestSellers示例
对于你看到的问题,我真的不确定错误是什么 - 也许它与矩阵使用XML.linq的方式有关?你可能有更多运气将这个问题打开到其他标签,如便携式类库,XML-linq和windows-phone。