C#学习系列之VS .net Framework版本不兼容问题

404 阅读2分钟

C#学习系列之VS .net Framework版本不兼容问题

前言

最近在之前的项目中增加新的需求功能,整个过程都很顺利,两天左右的时间完成功能增加与调试,生成.exe的方式直接给别人运行。别人在测试运行出现画面不连续,直接运行就卡顿了。我测试的时候没有使用到图像,没有发现这个问题。在我编写的过程中,我将整个项目都重新生成解决方案了,相比较源程序,对于一些没有引用的报错都解决了,还是出现.exe运行画面有问题,但是整个项目Debug下运行正常。我对比代码,同时又拿到原始版本进行测试,发现原始版本在测试一次流畅播放视频后,会出现卡顿。


解决思路

整个项目整体很大,线程与界面程序没有使用绑定,从.xaml调用了.cs中的视频解码,整个调用已经使用很久,测试过很多次,没有出现过.exe运行出现播放一会就卡顿不动的情况。而在整个项目Debug运行时,完全不出现这种卡顿不播的情况,无法采用断点或调试来解决这个问题。通过一下解决排查,找到问题所在。

  • 对比代码:使用Beyond Premiun进行对比,整个改动不会涉及到视频播放代码,排除新增代码问题。
  • 源代码测试:将源代码进行.exe运行,测试一次后,再次使用出现卡顿,不播放。
  • 具体情况分析:从整个代码运行看,后台占用不高,不存在线程Kill的情况。同时在同一个.xaml中的程序,其他程序功能正常运行,说明后台线程运行正常。最终发现运行软件版本不一致。原本的代码在VS2019上运行.net Framework4.6.1,而因为实际使用的电脑在我休假期间已经更新硬盘,重装系统,没有原本的.net Framework4.6.1目标包,而是更新项目,选择安装的vs2022上运行的.net Framework4.8。果断尝试下载.net Framework4.6.1看看。

解决步骤

  • 找到安装。

image.png

  • 在这个界面,选择修改。

image.png

  • 查询并安装对应版本:左边可以选择需要安装的目标包,右边是查询已有的安装包。

image.png


总结

最终通过安装好.net Framework4.6.1,再次进行测试,发现画面播放流畅无问题。以此记录一下,关于WPF的框架不兼容的问题! 至于为什么要这样安装,因为.net Framework4.6.1已经不维护了,直接下载不到这个安装包!