1

我正在尝试为 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:\Program Files (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

请指教。

4

2 回答 2

1

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

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

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

希望它对某人有用。

于 2013-07-17T00:03:18.083 回答
0

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

于 2013-07-16T14:03:49.820 回答