1

我有便携式库(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" 

但不可能添加系统组件。

4

1 回答 1

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对此有更多想法

于 2013-11-24T22:53:53.237 回答