公共语言运行时全局程序集缓存解决"利用旧版本的Blend SDK构建的,并且在Windows Presentation Framework 4项目不受支持"

在wpf项目中我们引入System.Windows.Interactivity.dll程序集在使用时会报错:

这是因为这个程序集是用vs2017构建的,然而我们的项目现在是用vs2019构建的,wpf界面会显示报错,但是运行时是正常的。

那么怎样解决这个问题呢?就是使用gacutil.exe工具注册全局程序集缓存,如下:

1、以管理员身份运行命令提示符
2、定位到SDK目录: C:Program Files (x86)Microsoft SDKsWindowsv10.0AinNETFX 4.6.1 Tools   (注意:这个目录不是固定的而是gacutil.exe安装的目录,这里我们使用sdk自带的工具)
3、注册DLL: gacutil -i System.Windows.Interactivity.dll    (注意:这个dll是具体的路径地址,参考上图)
4、重新启动Visual Studio

为什么添加了全局程序集缓存就OK了呢?

首先看下定义:安装了公共语言运行时的每台计算机均具有计算机范围的代码缓存,称为全局程序集缓存。全局程序集缓存中存储专门指定给由计算机中若干应用程序共享的程序集。

核心就是这里的”公共语言运行时“,前面我们就提到了,在设计界面会报错,但是在运行时是好的。那么现在把这个dll放在公共语言运行时中的全局程序集缓存中,在设计开发界面时实际上是调用运行时的dll,这样就解决问题了。

如果你满意给个赞谢谢!

原文地址:https://www.cnblogs.com/happyShare/p/13785390.html