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

14 篇文章 1 订阅

一、描述

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

二、兼容问题

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

下载器使用了.NET 4.0版本进行编译,在win10系统中可以正常运行,在win7中运行报错,如下
在这里插入图片描述
于是,将下载器改为.NET 3.0进行编译。可以在win7中正常运行了,但是在win10中出问题了,运行弹出提示框,如下:
在这里插入图片描述
微软居然不会自动向下兼容。

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
在这里插入图片描述

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

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

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

然后使用IE浏览器打开,即可看到已安装的.NET版本了。
在这里插入图片描述
如果是win10则不行,看不到.NET版本,弹框如下:
在这里插入图片描述

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

win+R键,在命令窗口输入regedit.exe,打开注册表。
在这里插入图片描述
在注册表中定位到如下节点HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
安装过的.NET Framework都列在NDP目录下
在这里插入图片描述

三、高低版本.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 3.5前面的勾选,点击确定。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林新发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值