WPF版本问题排坑记录
先说结论:珍爱生命,远离不明第三方组件库。
问题描述:
今早摸鱼的时候看见狼哥一个开源项目,我非常感兴趣!结果clone下来之后,没跑起来?嗯?我姿势不对?好!我再跑!结果还是run不起来,无奈求教狼哥本人,狼哥亲自clone之后没在他的机器上重现我这个bug。因为报错的这个库是nuget拉下来的,我们先看报错截图:
第三方库是:"MaterialDesignThemes.Wpf”
问题已经很明显了,是因为库的依赖出现的程序集版本不对所引起的,我们只需要找到这个PresentationFramework然后找到相应版本就行了,问题似乎很清晰明了。
好的,我们按照上述思路,开始操作:
先查询当前所引用的PresentationFramework在本地机器上的存储位置:
于是我们进入此文件目录:
一开始并没有6.0.2和6.0.16这个文件夹,这是后面我解决这个问题所下载的。
然后我们点进文件夹,发现:
这个PresentationFramework就是报错的6.0.0版本,于是按照我们上述的解决思路,我们只需要将这个替换成6.0.2版本问题不就解决了吗?
于是说干就干,但新的问题来了,6.0.2版本的PresentationFramework我去哪里找?
我观察了下PresentationFramework的其他几个类似dll,发现这个6.0.0是和.netsdk的版本挂钩的,也就是说我下载net6.0.2的sdk就可以找到PresentationFramework6.0.2版本。
于是前去微软官网下载:
这里下载请注意,我经过测试,下载右边的桌面运行时是没用的,必须下载左边的。
下载完后,我们怎么替换引用呢?
很简单,我想到了一个很狗但是非常方便的方法(因为我只是想运行这个项目,不涉及release所以可以这样做,但如果你需要release请务必禁止这样做!)
没错,就是文件重命名,下载完6.0.2版本后我们的引用文件夹长这样:
把6.0.2改成6.0.0:
最后,重启项目,完美解决并成功运行: