从 Prism 应用程序中引用正确的 System.Windows.Interactivity dll

12

我正在构建一个WPF Prism应用程序。我希望对控件添加EventTriggers,以便可以在底层视图模型上调用命令。但是,我好像无法引用正确的DLL文件使项目运行。目前,我从C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.0\Libraries目录中引用 Microsoft.Expression.InteractionsSystem.Windows.Interactivity

当我运行模块时,出现以下错误:

无法加载文件或程序集'System.Windows.Interactivity,
PublicKeyToken=31bf3856ad364e35'或它的某个依赖项。
系统找不到指定的文件。

我在反编译器中检查了System.Windows.Interactivity程序集并发现它引用了:

  • mscorlib
  • PresentationCore
  • PresentationFramework
  • System
  • System.Core
  • System.Xaml
  • WindowsBase

所有的引用都指向4.0框架。我已经从.NET引用选项卡中引用了每一个,确保每一个都是4.0版本。这些引用都来自于C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0目录。

在我的环境中,System.Windows.InteractivityMicrosoft.Expression.Interactions组件是否需要其他下载文件?


你在 System.Windows.Interactivity 引用的属性中设置了“复制本地”为 true 吗? - Sebastian
所有程序集都已设置为本地复制,但似乎仍然无法正常工作。 - Josh
我已经分享了我遇到类似问题的经验。请参考这个链接:https://dev59.com/G1_Va4cB1Zd3GeqPWcHr#33592411 - user1912383
2个回答

11
由于某些我仍无法理解的原因,Prism包含了自己版本的Blend SDK程序集。因此,您应该从Prism发布的Lib\Desktop文件夹中引用Microsoft.Expression.Interactions.dll和System.Windows.Interactivity.dll(假设您正在使用Prism v4),而不是从Blend SDK安装中引用它们。

6

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