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

Xamarin.ios 使用V3创建MvvmCross应用程序-iOS上缺少System.Windows,xamarin.ios,mvvmcross,xamarin-studio,Xamarin.ios,Mvvmcross,Xamarin Studio,我目前尝试使用V3设置我的应用程序 对于WP8和Android来说,它实际上工作得很好。但我正在为iOS而挣扎 如新教程中所述,我已将以下参考添加到我的核心项目中: <ItemGroup> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="System.Net" /> <Referen

我目前尝试使用V3设置我的应用程序

对于WP8和Android来说,它实际上工作得很好。但我正在为iOS而挣扎

如新教程中所述,我已将以下参考添加到我的核心项目中:

  <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>
  • cirrius.CrossCore.dll
  • cirries.MvvmCross.dll
当我在mac上打开我的解决方案(得到的解决方案只包括iOS和核心项目)时,Xamarin Studio开始抱怨,它找不到ICommand所需的System.Windows.Input内容

目前在代码中找不到ICommand/IList/MvxRealyCommand…:

因此,问题是: 我必须在核心项目中引用哪个dll才能使其在Xamarin Studio中工作


编辑: 好的,我必须为我的核心项目添加以下参考:

  <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>

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

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

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

更新结束


Xamarin尚未正确支持PCL

因此,您必须为ios版本单独编译pcl项目,并且必须引用为ios而构建的dll,而不是为“正确的pcl”而构建的dll

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

repo目前包含四组二进制文件,包括所有pcl和ios、调试和发布


有关这种情况的更多信息,请参阅



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

2013年6月更新

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

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

更新结束


Xamarin尚未正确支持PCL

因此,您必须为ios版本单独编译pcl项目,并且必须引用为ios而构建的dll,而不是为“正确的pcl”而构建的dll

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

repo目前包含四组二进制文件,包括所有pcl和ios、调试和发布


有关这种情况的更多信息,请参阅



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

好的,谢谢您的回答!但当我使用Mac DLL时,它不会改变任何事情。只是少了一些东西。。我已经尝试将“System.Windows.Touch”添加到核心项目中。ICommand仍然缺少。。grrOk,我已经检查了会议示例,现在可以编译了。我还不完全明白原因,还需要进一步调查,但谢谢你给我提供了正确的方向:-)好的,谢谢你的回答!但当我使用Mac DLL时,它不会改变任何事情。只是少了一些东西。。我已经尝试将“System.Windows.Touch”添加到核心项目中。ICommand仍然缺少。。grrOk,我已经检查了会议示例,现在可以编译了。我不完全理解原因,必须进一步调查,但感谢您将我发送到正确的方向:-)