问题
I have a WPF Prism application that I'm building. The application is to the point where I want to be able to add EventTriggers to controls so I can call commands on the underlying view model. However, I can't seem to reference the correct DLLs to make the project run. Currently, I'm referencing Microsoft.Expression.Interactions
and System.Windows.Interactivity
from the C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.0\Libraries
directory.
When I run the module, I get this error:
Could not load file or assembly 'System.Windows.Interactivity,
PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
The system cannot find the file specified.
I checked the System.Windows.Interactivity
assembly in reflector and can see that it references:
- mscorlib
- PresentationCore
- PresentationFramework
- System
- System.Core
- System.Xaml
- WindowsBase
All the references point to the 4.0 framework. I've referenced each from the .NET reference tab, making sure that each one is the 4.0 version. All these references are being loaded from the C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0
directory.
Is there another download I need for the System.Windows.Interactivity
and Microsoft.Expression.Interactions
assemblies to work in my environment?
回答1:
For some reason that I still cannot fathom, Prism includes it's own version of the Blend SDK assemblies. So you should reference Microsoft.Expression.Interactions.dll and System.Windows.Interactivity.dll from the Lib\Desktop folder of the Prism distribution (assuming you're using Prism v4) rather than from the Blend SDK installation.
回答2:
For people landing on this page experiencing this problem but where the above given solution isn't working, you might have a look at: Prism assembly reference failure: System.Windows.Interactivity
来源:https://stackoverflow.com/questions/7286774/referencing-the-correct-system-windows-interactivity-dll-from-prism-application