.NET Framework高低版本兼容问题解决办法

文章目录

一、描述

端游上架QQ游戏大厅,一般会要求自制一个微端下载器,可以使用.NET Framework的桌面应用开发,也可以使用C++桌面应用开发。为了方便快捷,我采取了.NET Framework的桌面应用开发的方式。

二、兼容问题

1、高低版本.NET兼容问题

下载器使用了.NET 4.0版本进行编译,在win10系统中可以正常运行,在win7中运行报错,如下
《.NET Framework高低版本兼容问题解决办法》
于是,将下载器改为.NET 3.0进行编译。可以在win7中正常运行了,但是在win10中出问题了,运行弹出提示框,如下:
《.NET Framework高低版本兼容问题解决办法》
微软居然不会自动向下兼容。

2、windows自带的.NET版本

操作系统版本默认安装的.NET版本
windows xp sp1.NET Framework 1.0 + SP2
windows xp sp2.NET Framework 1.0 + SP3
windows xp sp3.NET Framework 1.0 + SP3
windows Vista.NET Framework 2.0 + 3.0
windows Vista SP1.NET Framework 2.0 SP1 + 3.0 SP1
windows 7 / windows 7 SP1.NET Framework 3.5.1
windows 8.NET Framework 4.5
windows 8 sp1.NET Framework 4.5.1
windows 10 (1507).NET Framework 4.6
windows 10 (1511).NET Framework 4.6.1
windows 10 (1607).NET Framework 4.6.2
windows 10 (1703).NET Framework 4.7
windows 10 (1709).NET Framework 4.7.1
windows 10 (1803/1809).NET Framework 4.7.2
windows 10 (1903).NET Framework 4.8

注意,现在很多操作系统都做了ghost镜像版本,所以系统自带的.NET版本不一定和上面的表格一致,很可能你的win7就自带了.NET 4.0了。

2、如何查案已安装的.NET版本

2.1、方法一:官方办法

微软官方提供了工具,https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed
《.NET Framework高低版本兼容问题解决办法》

2.2、方法二:通过javascript查看.NET版本

如果你是win7,可以使用更简单的办法:
新建一个html文件,内容如下:

<script> alert(navigator.userAgent); </script>

然后使用IE浏览器打开,即可看到已安装的.NET版本了。
《.NET Framework高低版本兼容问题解决办法》
如果是win10则不行,看不到.NET版本,弹框如下:
《.NET Framework高低版本兼容问题解决办法》

2.3、方法三:通过注册表查看.NET版本

win+R键,在命令窗口输入regedit.exe,打开注册表。
《.NET Framework高低版本兼容问题解决办法》
在注册表中定位到如下节点HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
安装过的.NET Framework都列在NDP目录下
《.NET Framework高低版本兼容问题解决办法》

三、高低版本.NET兼容解决办法

查阅了微软的官方文档:
https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/how-to-configure-an-app-to-support-net-framework-4-or-4-5
解决办法如下:
载器使用.NET 3.0进行编译。
下载器exe同级目录中放一个与exe同名的.config配置,比如下载器为MyLauncher.exe,则配置名为MyLauncher.exe.config。配置内容如下:

<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
     <supportedRuntime version="v2.0.50727" />
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>

四、高低版本.NET兼容测试

使用上述的解决办法,将程序在以下环境中进行兼容测试。
1 在只安装了.NET 3.5win7中进行测试。
2 在只安装了.NET 4.0win10中进行测试。

补充,如果你的电脑中既安装了.NET 3.5又安装了.NET 4.0,可以将.NET 3.5禁用掉。
方法如下:
打开 控制面板\程序\程序和功能,点击 启用或关闭 Windows 功能
《.NET Framework高低版本兼容问题解决办法》
去掉.NET Framework 3.5前面的勾选,点击确定。
《.NET Framework高低版本兼容问题解决办法》

    原文作者:林新发
    原文地址: https://blog.csdn.net/linxinfa/article/details/112219117
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞