无法加载文件或程序集Microsoft.Expression.Interactions和GalaSoft.MvvmLight.Extras.WPF4。

4

在使用Prism 4时,我遇到了一些未知的问题。我们采用MVVM模式来实现业务解决方案。为此,我使用了

 1. Microsoft.Expression.Interactions

 2. System.Windows.Interactivity

 3. GalaSoft.MvvmLight.Extras.WPF4

适用于 Interaction.Triggers、CallMethodAction 和 EventToCommand。

<SWI:Interaction.Triggers>
    <SWI:EventTrigger SourceObject="{Binding ElementName=txtName}" EventName="GotFocus">
        <MEI:CallMethodAction TargetObject="{Binding Path=DataContext,ElementName=txtName}" MethodName="txtName_GotFocus"></MEI:CallMethodAction>
    </SWI:EventTrigger>
    <SWI:EventTrigger SourceObject="{Binding ElementName=txtName}" EventName="KeyUp">
        <GMEWCMD:EventToCommand   Command="{Binding Path=DataContext.cmdtxtNameKeyUpEvent,ElementName=txtName}" PassEventArgsToCommand="True">
        </GMEWCMD:EventToCommand>
    </SWI:EventTrigger>
</SWI:Interaction.Triggers>

一切都很正常,但现在我们需要使整个系统松耦合,我们选择了Prism 4。我们已经实现了这个目标,但是上面的代码会造成以下问题。
“无法加载文件或程序集'Microsoft.Expression.Interactions, PublicKeyToken=31bf3856ad364e35'或其依赖项之一。 系统找不到指定的文件。”
如果我注释掉上面的代码,一切都工作正常。我不知道出了什么问题。PRISM 4是否不支持以上程序集?
请帮我们解决这个问题。
谢谢。

遇到了非常相似的问题,但没有使用Prism。 - Chuck Rostance
3个回答

14

当我在属于模块的视图中引用Microsoft.Expression.Interactions和System.Windows.Interactivity,但未将这些引用添加到充当外壳的项目中时,我经常遇到这种情况。


3
这句话的意思是:“@franssu,它的意思是将那些参考文献添加到应用程序中,而不仅仅是库里。” - kwesolowski
2
我不知道这是否是对于原帖的答案,但对于我来说是正确的。 - dlf
也对我有用。 - Julian

1
我在Visual Studio 2012中使用Prism时遇到了类似的问题。XAML编辑器会出现相同的异常。
解决方法是安装Microsoft Expression Blend SDK。该程序集应该是SDK的一部分。据说,在XAML中控件事件和命令之间的绑定以及某些代码可能需要它。

1

我在使用.NET 4.5.2构建Prism 6.1复合应用程序时遇到了同样的问题,其中一个模块(类库)中引用了Microsoft.Expression.Interactions和System.Windows.Interactivity。最终我不得不在桌面项目(包括引导程序和Shell)中引用相同的dll文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接