如何让基于.NET 2.0的应用在高版本的系统上运行?
我们的WinForm项目是基于.NET 2.0开发的,在部署时,发现有些机器没有.NET 2.0,但是即使这些机器有装.NET 2.0 以上的版本,也无法运行我们的程序。这就比较蛋疼了。
我们查了一下,发现windows各个版本中自带的.NET Framework的版本是这样的:
|
windows版本 |
.net framework版本 |
|
winxp |
无 (注:xp sp1 则自带了 .net 2.0) |
|
win7 |
.net 3.5(包含.net3.0 .net2.0) |
|
win8 |
.net 4.5 |
|
win10 |
.net 4.5 |
在winxp上安装.NET 2.0 是非常容易的,但是要在win8和win10上安装.NET 2.0,就不是那么顺利了,经常遇到无法降级的情况。
我想,既然高版本的.NET Framework几乎是完全兼容.NET 2.0的, 那么,有没有办法让基于.NET 2.0的应用直接在高版本的.NET上运行了?
经过一番摸索,终于找到了解决方案,那就是在配置文件中加上所支持的.NET的版本即可。
解决方法
(1)在.NET 2.0程序项目下的应用程序配置文件 App.config 中,
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
这几行配置的意思是:如果系统中有.NET 4.0+时,就使用.NET 4.0+,否则,就使用.NET 2.0。
(2)重新编译生成程序。
如此一来,几乎所有的电脑都可以直接跑我们的.NET 2.0的WinForm程序了,除了那些极少数连补丁都没打的WinXP系统。
如何让基于.NET 2.0的应用在高版本的系统上运行?的更多相关文章
- Android项目的targetSDK>=23,在低于Android6.0的部分测试机(类似华为)上运行时出现的系统权限问题
相信大家对Android6.0以上的动态权限已经有所了解,很多童鞋也已经跃跃欲试地将自己项目的targetSDK升级到了23及其以上,很不幸的是我也成为了其中一员,然而我还是图样图森破了,升级之后的问 ...
- Jstorm调度定制化接口(0.9.5 及高版本)
从JStorm 0.9.0 开始, JStorm 提供非常强大的调度功能, 基本上可以满足大部分的需求. 在学习如何使用新调度前, 麻烦先学习 JStorm 0.9.0介绍 提供哪些功能 接口 设置每 ...
- 基于FPGA+USB2.0的图像采集系统测试小结-mt9m001
基于FPGA+USB2.0的图像采集系统测试小结-mt9m001 该系统采用层层惊涛出品的FPGA_VIP_USB_V102板卡测试 板卡分为:核心板.底板.摄像头板 核心板采用:ep4ce10e22 ...
- 基于英特尔® 至强™ 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训
原文链接 深度神经网络 (DNN) 培训属于计算密集型项目,需要在现代计算平台上花费数日或数周的时间方可完成. 在最近的一篇文章<基于英特尔® 至强™ E5 产品家族的单节点 Caffe 评分和 ...
- 开源即时通讯GGTalk 8.0发布,增加Linux客户端,支持在统信UOS、银河麒麟上运行!
GGTalk在2021年推出7.0后,经过一年多时间的开发,终于推出8.0版本,实现了Linux客户端. 这几年,信创国产化的势头越来越猛,政府事企业单位都在逐步转向使用国产OS.国产CPU.国产数据 ...
- appium_server_v1.4.16版本不适配android7.0系统,运行报错“Attempt to re-install io.appium.settings without first uninstalling”
要解决的问题:appium在androidV7.0系统上运行时报错 Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.a ...
- [转帖]InfluxDB 1.2.0安装及新旧版本的注意事项
InfluxDB 1.2.0安装及新旧版本的注意事项 http://haibing.org/245?zwlqby=npztq3 挺好的文章 很好的解决了 上一个文档里面 关于 web admin 的问 ...
- 编译可在Nexus5上运行的CyanogenMod13.0 ROM(基于Android6.0)
编译可在Nexus5上运行的CyanogenMod13.0 ROM (基于Android6.0) 作者:寻禹@阿里聚安全 前言 下文中无特殊说明时CM代表CyanogenMod的缩写. 下文中说的“设 ...
- 谈谈基于OAuth 2.0的第三方认证 [下篇]
从安全的角度来讲,<中篇>介绍的Implicit类型的Authorization Grant存在这样的两个问题:其一,授权服务器没有对客户端应用进行认证,因为获取Access Token的 ...
随机推荐
- JVM 内存模型概述
我们都知道,Java程序在执行前首先会被编译成字节码文件,然后再由Java虚拟机执行这些字节码文件从而使得Java程序得以执行.事实上,在程序执行过程中,内存的使用和管理一直是值得关注的问题.Java ...
- 在canvas中使用其他HTML元素
做一个功能如下图,随机生成100个大小.颜色随机的小球.点击开始运动的时候,小球开始运动,然后点击停止运动的时候,小球停止运动. 点击旁边的白色或者黑色,则背景颜色变为相应的颜色. HTML部分: & ...
- spring cloud 断路器 Hystrix
一.微服务架构中使用断路器的原因 二.代码实现 1.在Ribbon中使用短路器 1.1.引入依赖 <dependency> <groupId>org.springframewo ...
- Gin + Vue全栈开发实战(二)
尝试地写了第一篇自己学习Go Web框架的感受和入门的文章,发现反响还不错,大家也提出了很多的问题来一起交流.近期也渐渐地出现了很多有关go语言开发的相关文章,包括有在蚂蚁金服的大牛的分享,我也一直有 ...
- 微信小程序页面跳转url如何传对象参数
两步走 首先第一步:wx.navigateTo({ url:"XXX"+"¶ms="+ JSON.stringify(obj); }) 第二步获 ...
- .net core 添加本地dll
公司内部开发的核心类库,添加到新项目中去,可以使用如下方法. 1.设置包信息 右击项目-属性,选着打包,输入相关信息. 2.核心类库打包成 *.nupkg文件, 3.创建一个文件夹.将打包的nupkg ...
- 2015-11-17 linux基础笔记
21. 可执行权限不代表能够执行,这得看文件内容 22. 还是可以用适当的拓展名表示该文件是什么种类的*.sh 脚本或批处理文件 *Z.*.tar.*.tar.gz.*.zip.*.tgz 压缩文件 ...
- 【Python3爬虫】快就完事了--使用Celery加速你的爬虫
一.写在前面 在上一篇博客中提到过对于网络爬虫这种包含大量网络请求的任务,是可以用Celery来做到加速爬取的,那么,这一篇博客就要具体说一下怎么用Celery来对我们的爬虫进行一个加速! 二.知识补 ...
- 打包一沓开源的 C/C++ 包管理工具送给你!
本文作者:HelloGitHub-ChungZH 博客地址:https://chungzh.cn/ 包管理器可以帮助你更方便地安装依赖关系,并决定所安装的版本,提高你的开发幸福感.许多语言都有自己的包 ...
- Linux下各目录及其作用
目录及其作用 /:根目录,一般根目录下只存放目录,不要存放件,/etc./bin./dev./lib./sbin应该和根目录放置在一个分区中 /bin: /usr/bin: 可执行二进制文件的目录,如 ...