用于Monotouch / Android / WindowsPhone的简单DataAccess PCL库

时间:2013-07-16 04:33:25

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

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

我能够在Mac OS X Xamarin Studio下创建这样的(便携式)库,并在iPhone应用程序中成功使用它。 但后来我在Visual Studio下打开了这个解决方案(添加Windows Phone UI项目),它给了我构建错误,说明它无法找到System.Net命名空间。 当我检查便携式课程目标时,我惊讶地看到甚至选择了XBOX: enter image description here

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

  

“C:\下载\ Noname.CrossXam \ Noname.CrossXam \ Noname.CrossXam.iPhone \ Noname.CrossXam.iPhone.csproj”   (_RemoteBuild target)(1) - > (_ResolveAssemblies target) - >
  C:\ Program Files   (86)\的MSBuild \ Xamarin \的iOS \ Xamarin.MonoTouch.Common.targets(68,3):   错误:加载程序集时出现异常:   System.IO.FileNotFoundException:无法加载程序集'System.Net,   Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e'。   也许它在MonoTouch配置文件中不存在? ...

0 Warning(s)
1 Error(s)

相同的代码(相同的解决方案)在Mac OS X下使用Xamarin Studio工作得很好。 样本解决方案在这里: https://dl.dropboxusercontent.com/u/19503836/Noname.CrossXam.zip

请告知。

2 个答案:

答案 0 :(得分: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)

希望它对某人有用。

答案 1 :(得分:0)

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