文章目录
- 一、描述
- 二、兼容问题
- 1、高低版本.NET兼容问题
- 2、windows自带的.NET版本
- 2、如何查案已安装的.NET版本
- 2.1、方法一:官方办法
- 2.2、方法二:通过javascript查看.NET版本
- 2.3、方法三:通过注册表查看.NET版本
- 三、高低版本.NET兼容解决办法
- 四、高低版本.NET兼容测试
一、描述
端游上架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
前面的勾选,点击确定。