我正在使用MvvmCross框架创建Windows Phone 8项目。 在XAML中我WP8项目中,我有以下几点:在WP8项目中使用MvxEventToCommand时出现构建错误
<i:Interaction.Triggers >
<i:EventTrigger EventName="Tap">
<Commands:MvxEventToCommand Command="{Binding OnItemTappedCommand}" />
</i:EventTrigger >
</i:Interaction.Triggers>
我的命名空间如下:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
和
xmlns:Commands="clr-namespace:Cirrious.MvvmCross.WindowsPhone.Commands;assembly=Cirrious.MvvmCross.WindowsPhone"
当我尝试建立我的错误:
无法解析程序集的相关性System.Windows.Interactivity,Ve rsion = 3.8.5.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35',因为它尚未预加载。在使用ReflectionOnly API时,必须通过ReflectionOnlyAssemblyResolve事件按需预加载或加载相关程序集。
寻找ILSpy我可以看到Cirrious.MvvmCross.WindowsPhone.dll引用这个DLL,但我的程序集中只有我的程序集引用列表中可用的版本3.9.5.0。
我已经尝试在我的app.config中添加程序集重定向,但我认为这对于运行时解析更适合于生成错误。
解决此问题的最佳方法是什么?
感谢
- 编辑 -
我设法找到System.WindowsInteractive.dll的WP7.1版本是3.8.5.0版本来解决这个问题。我的项目肯定是针对Windows 8.0手机操作系统。
这可能是MVVMCross的Nuget包装的问题吗?
离家出走。无法正确回答。我知道eventtocommand依赖于混合交互 - 但通常ms sdk会安装这个...下周将尝试检查更多内容。 – Stuart
谢谢。我现在使用的是旧版本,但使用更新的版本会很好。 虽然SDK确实安装了System.Windows.Interactive,但它似乎是版本3.9.5.0。 –
mvvmcross框架使用针对wp7.1的项目,其中有一个项目作为system.windows.interactivity的参考。如果你的主项目是以wp8为目标的,也许在某处有冲突......前段时间我也遇到了同样的问题,但我直接使用mvvmcross项目,所以我刚刚将WP7.1项目转换为WP8。这不是最好的方法,但对我来说它工作。也许我会在不久的将来改变它。 – zleao