【问题标题】:Simple DataAccess PCL Library for Monotouch/Android/WindowsPhone用于 Monotouch/Android/WindowsPhone 的简单 DataAccess PCL 库
【发布时间】:2013-07-16 04:33:24
【问题描述】:

我正在尝试为 3 个平台(ios、android、wp7.5)创建简单的 DataAccess 可移植类库。 我想要的只是创建网络请求,转换数据并将其返回到每个平台的 UI。

我能够在 Mac OS X Xamarin Studio 下创建这样的库(便携式)并在 iPhone 应用程序中成功使用它。 但是后来我在 Visual Studio 下打开了这个解决方案(以添加 Windows Phone UI 项目),它给了我构建错误的描述,它找不到 System.Net 命名空间。 当我检查可移植类目标时,我惊讶地发现甚至选择了 XBOX:

当我选择正确的目标 (MonoDroid/Monotouch/WindowsPhone7.5) 时,我能够编译,但是当我启动应用程序时收到以下错误:

"c:\Downloads\Noname.CrossXam\Noname.CrossXam\Noname.CrossXam.iPhone\Noname.CrossXam.iPhone.csproj" (_RemoteBuild 目标) (1) -> (_ResolveAssemblies 目标) ->
C:\程序文件 (x86)\MSBuild\Xamarin\iOS\Xamarin.MonoTouch.Common.targets(68,3): 错误:加载程序集时出现异常: System.IO.FileNotFoundException:无法加载程序集“System.Net, 版本=2.0.5.0,文化=中性,PublicKeyToken=7cec85d7bea7798e'。 也许它在 MonoTouch 配置文件中不存在? ...

0 Warning(s)
1 Error(s)

相同的代码(相同的解决方案)在带有 Xamarin Studio 的 Mac OS X 下运行良好。 示例解决方案在这里: https://dl.dropboxusercontent.com/u/19503836/Noname.CrossXam.zip

请指教。

【问题讨论】:

    标签: xamarin.ios cross-platform xamarin.android xamarin portable-class-library


    【解决方案1】:

    问题出在 System.Net.dll 程序集中,该程序集在 MonoTouch 和 MonoAndroid 配置文件下不存在。但是这些类是在这些配置文件下的 System.dll 中实现的,要使其工作,您需要 TypeForwardedToAttribute。

    所有类型的转发配置都存在于 MVVMCross nuget 包中,我只能在更新 nuget 后安装它(这篇文章的最后一条评论:http://slodge.blogspot.com/2013/04/my-current-pcl-setup-in-visual-studio.html

    所以有两个问题: 1.旧的nuget包管理器(需要更新) 2.TypeForwardedToAttribute配置(存在于MvvmCross)

    希望它对某人有用。

    【讨论】:

      【解决方案2】:

      您是否尝试将目标框架更改为 .Net 4.5?您应该在 .csproj 文件中看到 Profile104

      【讨论】:

      • 感谢您的回答。不幸的是,它没有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 2015-08-24
      • 1970-01-01
      • 2017-05-17
      • 2013-11-28
      相关资源
      最近更新 更多