文章目录
一、描述
端游上架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、方法一:官方办法
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.5的win7中进行测试。
2 在只安装了.NET 4.0的win10中进行测试。
补充,如果你的电脑中既安装了.NET 3.5又安装了.NET 4.0,可以将.NET 3.5禁用掉。
方法如下:
打开 控制面板\程序\程序和功能,点击 启用或关闭 Windows 功能。

去掉.NET Framework 3.5前面的勾选,点击确定。

本文介绍了.NET Framework不同版本之间的兼容性问题,特别是针对Win7和Win10系统的具体案例,并提供了解决方案及测试方法。

367

被折叠的 条评论
为什么被折叠?



