便携式类库 / mvvmcross 中的 Skydrive 同步
Posted
技术标签:
【中文标题】便携式类库 / mvvmcross 中的 Skydrive 同步【英文标题】:Skydrive sync in portable class library / mvvmcross 【发布时间】:2013-11-22 15:01:58 【问题描述】:我有便携式库 (mvvmcross) 解决方案,在核心项目中我有 Live SDK 方法:
Client.DownloadCompleted += delegate(object o, LiveDownloadCompletedEventArgs e)
...
Client.DownloadAsync(SKYDRIVE_PATH + USER_DEFINED_FILE);
LiveDownloadCompletedEventArgs 有问题:
错误 1 类型“System.ComponentModel.AsyncCompletedEventArgs”在未引用的程序集中定义。您必须添加对程序集“System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e”的引用。
我在哪里可以找到这个系统程序集?我试图添加这个:
"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll"
但无法添加系统组件。
【问题讨论】:
但是Live SDK 没有提供PCL 库,对吧?例如,您不能引用来自 PCL 的纯 .NET Framework 库。但是,NuGet 上似乎有某种用于 Live SDK 的 PCL 帮助程序库,请阅读更多here。 Live SDK 在 mvvmcross 中不起作用(仅 WinRT+Wp),所以我宁愿在原生平台上解决它。 【参考方案1】:遗憾的是,如果 API/库不可移植,那么您将无法通过添加对不同 System.dll 程序集的引用来强制它可用。
当 API 无法移植时,我建议:
将它们封装在接口后面,并将它们从本机平台注入到可移植代码中。在http://mvvmcross.wordpress.com/ 的 N=31 中有一些这样的例子 选择将您的代码放入不可移植的库中,并通过文件链接而不是通过 PCL 共享代码Daniel Plaisted 对此有更多想法http://blogs.msdn.com/b/dsplaisted/archive/2012/08/27/how-to-make-portable-class-libraries-work-for-you.aspx
【讨论】:
以上是关于便携式类库 / mvvmcross 中的 Skydrive 同步的主要内容,如果未能解决你的问题,请参考以下文章
类库(通用应用程序的便携式) System.Threading.Thread 限制