WPF应用System.Windows.Interactivity程序集加载失败问题求助
解决WPF中System.Windows.Interactivity版本不匹配的FileLoadException问题
这个错误核心是程序集版本不匹配——你的项目明确引用了System.Windows.Interactivity, Version=4.5.0.0,但实际找到的程序集清单和这个引用标准不一致。下面是几个按优先级排序的修复方案,你可以逐一尝试:
方案1:通过NuGet包管理器统一版本(推荐)
如果你是用NuGet安装的Interactivity库,先排查包版本是否一致:
- 右键项目 → 选择「管理NuGet程序包」
- 切换到「已安装」标签,找到
System.Windows.Interactivity.WPF(注意选WPF专用包,别和Silverlight版本搞混) - 如果当前版本不是4.5.0.0,要么直接更新到对应版本,要么先卸载再重新安装4.5.0.0版本
- 操作完成后,先清理项目(Build → Clean Solution),再重新生成
方案2:添加程序集绑定重定向
如果是依赖项冲突导致版本不统一,可以在App.config里加绑定重定向,强制应用加载指定版本:
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Windows.Interactivity" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
保存配置后,重新生成项目即可。
方案3:手动校验引用的DLL
如果你是手动添加的DLL文件,按以下步骤检查:
- 右键项目里的
System.Windows.Interactivity引用 → 打开「属性」 - 确认「版本」是4.5.0.0,同时把「复制本地」设为
True - 去项目输出目录(比如
bin/Debug)找到对应的DLL,右键 → 属性 → 详细信息,查看文件版本是否和引用版本一致 - 如果不一致,替换成正确版本的DLL,再清理并重新生成项目
方案4:检查项目目标框架
确保你的WPF项目目标框架和Interactivity版本匹配:
- 右键项目 → 选择「属性」→ 切换到「应用程序」标签
- 查看「目标框架」下拉框,确认是.NET Framework 4.5或更高版本(4.5.0.0的Interactivity依赖这个框架)
小提醒:如果以上方案都没解决,试试删除项目的
obj和bin目录,再重新生成——有时候缓存的旧程序集会搞出这种奇怪问题。
内容的提问来源于stack exchange,提问作者kpgu1718
相关产品推荐
相关产品推荐

