.net 应用程序在模拟器中工作,但给出';无法解决错误';部署中

.net 应用程序在模拟器中工作,但给出';无法解决错误';部署中,.net,ios,mono,xamarin.ios,monodevelop,.net,Ios,Mono,Xamarin.ios,Monodevelop,因此,当我尝试构建部署到物理设备时,我的iPhone MonoTouch应用程序抛出以下错误 Error MT2002: Could not resolve: System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a (MT2002) (IcondySingleView) 它在模拟器中运行良好 对system.configuration的引用位于dll中 我在编译过程中也有此警

因此,当我尝试构建部署到物理设备时,我的iPhone MonoTouch应用程序抛出以下错误

Error MT2002: Could not resolve: System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a (MT2002) (IcondySingleView)
它在模拟器中运行良好

对system.configuration的引用位于dll中

我在编译过程中也有此警告,MYModel.dll包含对system.configuration的依赖项

Warning MT0011: MYModel.dll was built against a more recent runtime (NET_4_0) than MonoTouch supports. (MT0011) (IcondySingleView)
为什么它要在模拟器中构建和运行,而不是在部署到设备中。我可以在某个地方做同样的设置吗

无法解析:系统。配置

MonoTouch提供了一个基于Silverlight(2.1)配置文件以及许多附加配置文件的配置文件。此配置文件不包括
系统配置
——这对设备来说没有多大意义

警告MT0011:MYModel.dll是根据较新的运行时(NET_4_0)生成的

此外,MonoTouch目前(计划于2013年春季推出)不支持.NET 4.0配置文件。有些事情可能会奏效,但一般来说,您会发现缺少的成员不允许您构建应用程序

为什么它要在模拟器中构建和运行,而不是在部署到设备中

为什么它可以在模拟器上工作?这是因为它使用了JIT。即时编译意味着错误将在运行时发生(如果命中使用缺少类型/成员的代码路径)

为什么它会对设备失效?这是因为不允许JIT,我们使用AOT编译器。这意味着所有内容都是提前编译的,因此丢失的任何内容都会导致错误

我可以在某个地方做同样的设置吗

是的,您需要根据MonoTouch附带的SDK程序集重新构建所有程序集。这将确保程序集中仅引用可用的类型/成员。反过来,这意味着一切都保证在构建/运行时可用