使用V3创建MvvmCross应用程序 - 在iOS上缺少System.Windows

时间:2013-03-24 12:15:13

标签: xamarin.ios mvvmcross xamarin-studio

我目前正尝试使用V3设置我的应用。

对于WP8和Android,实际上工作正常。但我在iOS上喋喋不休。

如新教程中所述,我添加了以下对我的Core-Project的引用:

  • Cirrious.CrossCore.dll
  • Cirrious.MvvmCross.dll

当我在我的mac上打开我的解决方案(得到一个只包含iOS和Core项目的解决方案)时,Xamarin Studio开始抱怨,它无法找到ICommand所需的System.Windows.Input内容。

目前它在代码中找不到ICommand / IList / MvxRealyCommand ......:S

所以问题是: 我要引用哪个dll核心项目才能使它在Xamarin Studio中运行?


编辑: 好的,我要将以下引用添加到我的Core-Project:

  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Net" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.ServiceModel" />
    <Reference Include="System.Windows" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Xml.Serialization" />
  </ItemGroup>

不确定我是否需要所有这些,只需从会议示例中复制粘贴它们。 我还要做更多的研究:S

1 个答案:

答案 0 :(得分:3)

2013年6月更新

Xamarin现已发布了他们的第一个PCL支持。

此外,还找到了针对此问题的一个简单解决方法:只是不使用MvxCommand,而是使用您自己的本地项目MyCommand System.Windows.Input.ICommand实现作为Core的一部分{ {1}}项目。

更新结束


Xamarin尚未正确支持PCL

因此,你必须为ios版本单独编译你的pcl项目 - 你必须引用为iOS构建的dll,而不是为'适当的PCL'构建的dll

当遵循当前的mvx演练时,这意味着您需要在Mac上使用不同的mvvmcross二进制文件。我通常只需将不同的dll文件放在/ lib / mvx文件夹

repo https://github.com/slodge/mvvmcross-binaries目前包含四组二进制文件 - 这些二进制文件涵盖所有pcl和ios,调试和发布


http://slodge.blogspot.co.uk/2013/01/almost-portable-binaries.html?m=1

提供了有关此情况的更多信息

希望这种情况很快就会发生变化 - 只要适当的PCL支持到达,我们就应该能够在所有平台上使用相同的二进制文件集:)