我在 WP8 项目中使用 MvxEventToCommand 时遇到构建错误



我正在使用MvvmCross框架创建一个windows phone 8项目。在xaml中的WP8项目中,我有以下内容:

<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"的依赖。交互性,版本=3.8.5.0,文化=中性,PublicKeyToken=31bf3856ad364e35',因为它没有预加载。当使用ReflectionOnly api时,依赖程序集必须通过ReflectionOnlyAssemblyResolve事件预加载或按需加载。

在ILSpy中,我可以看到Cirrious.MvvmCross.WindowsPhone.dll引用了这个dll,但我在我的项目中的汇编引用列表中只有3.9.5.0版本可用。

我试过在我的app.config中添加一个程序集重定向,但我认为这更适合运行时解决方案,然后用于构建错误。

解决这个问题的最好方法是什么?

感谢

—EDIT—

我已经设法通过找到System.WindowsInteractive.dll的WP7.1版本来解决这个问题,该版本为3.8.5.0。我的项目肯定是针对Windows 8.0手机操作系统的。

这可能是MVVMCross的Nuget包装的问题吗?

为了回答这个问题,因为我今天遇到了这个问题…

我刚刚安装了Windows 8.1和Windows Phone 8 SDK。我的sln将构建,但是当MvvmCross解决启动时的插件时,它将与ReflectionLoadTypeException崩溃- LoaderExceptions属性包含单个条目-它无法找到System.Windows.Interactivity,尽管从项目参考管理器中的扩展列表中引用。

解决方案是安装Windows Phone 7 SDK并从C:Program Files (x86)Microsoft SDKsExpressionBlendWindows Phonev7.1LibrariesSystem.Windows.Interactivity.dll获取Windows Phone 7版本。

相关内容

最新更新