解决.NET 4.0下无法直接运行.NET 2.0程序的问题
如果你在使用vs2010的.net4.0运行不了.net2.0项目的话,可以来看看本文。
由于 .NET 4.0 使用新版本的 CLR,变化也不少,
例如:
mscoree.dll 变为 mscoree.dll 和 mscoreei.dll,
mscorwks.dll 变为 clr.dll,
mscorjit.dll 变为 clrjit.dll。
这导致在没有安装 .NET 2.0 的情况下,.NET 2.0 程序默认无法在 .NET 4.0 环境下运行(未安装 .NET 2.0/3.0/3.5)。(纠正:不是文件名的变化导致无法运行,而是微软的新策略是强烈建议程序在开发时使用的运行时版本下运行,这样可以保证最大的兼容性)
那么怎么办呢?
Visual Studio 2010 对项目可以设置“目标框架”,在没有安装 .NET 3.5 的情况下可以选择 .NET Framework 4、.NET Framework 4 Client Profile,在改变选择之后,会生成一个配置文件,内容如下:
<?xml version="1.0"?><configuration><startup useLegacyV2RuntimeActivationPolicy=
"true"
> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
把这个文件名改成你需要运行的程序的配置名,同时把程序与配置文件放到一起,这个时候就可以打开 .NET 2.0 的程序了。
以上只是我当时想出此方法的思路,当然你没有必要这样做。
你只要搞一个配置文件或者将以上配置文件内容添加到已有的配置文件中。
supportedRuntime version="v4.0" 强制当前程序在 CLR 4.0 环境下运行,当然你可以设置 1.0、1.1、2.0,前提是运行环境内有对于版本的运行时。(第二次纠正:如果强制在 CLR 2.0 下运行,必须设置 supportedRuntime version="v2.0.50727",如果设置 v2.0 无效。)
顺便说明目前的运行时版本只有 1.0、1.1、2.0、4.0,没有3.0、3.5。
实际上仅对 Windows XP 需要这样做,因为 XP 默认情况下没有安装任何 .NET 版本,Windows Vista/7 默认情况下分别安装了 .NET 3.0、.NET 3.5,具有 CLR 2.0。
以上做法可能会有兼容性问题,大型复杂程序不推荐这样做。小工具或者自行编写的程序(例如我)可以这样做,出了问题自行解决。这样在 XP 下,就不用安装 N 个 .NET 版本。
转载:http://www.xueit.com/html/2010-02-10/21-1565025410906.html
解决.NET 4.0下无法直接运行.NET 2.0程序的问题相关推荐
- TURBOLinux 7.0下安装Oracle 8.1.7.0.1 release 3
作者:shiley 时间:2002-5-20 ----------------------------------------------------------------------------- ...
- CentOS7.0下编译安装Nginx 1.10.0
2019独角兽企业重金招聘Python工程师标准>>> 准备工作 安装编译工具.依赖包 $ yum -y install gcc gcc-c++ autoconf automake ...
- Web 2.0下一个版本是什么 3.0就要到来了吗?
在最近一次会议上,有个客户要求他的应用程序能够支持Web 2.0:很显然他读过很多关于Web 2.0的文章.我回答了他,向他解释Web及其技术的发展过程,以及Web 2.0只是一个概念的事实.最后,这 ...
- Ubuntu16.0下安装显卡驱动、cuda10.0 、cudnn的活生生案例
由于本人记性不好,所以将深度学习环境配置过程中的活生生教训记录下来,避免以后再在相同的地方栽跟头,时间如金,且行且珍惜. 这个方法在环境配置环境完成后才发现的,一般来讲啊,亲测有效的一般含金量都比较高 ...
- 三星手机android9.0,三星Galaxy S9+ 运行Android 9.0
8月29日,三星Galaxy S9+现身GeekBench,该机运行的是Android 9 Pie系统.由此看来,三星正在测试全新的Android 9 Pie系统.全新的Android 9 Pie系统 ...
- java零碎要点012---linux Centos下编译、运行、调试java程序
JAVA技术交流QQ群:170933152 有时候要调试一些东西,适不适用Linux,还是需要在Linux上弄啊 Linux上步骤: 安装jdk 安装以后vi Test.java 然后编写程序: im ...
- IIS7.0通过FastCGI方式运行PHP遇到的一些问题及解决方法
经过二天的努力,终于把PHP网站从Apache迁移到IIS7上面,迁移过程中遇到一些问题,在这里和大家分享一下. 至今仍有一个问题,希望大家帮忙指点. 本文不会涉及如下内容: IIS7的安装 Fast ...
- c语言vi运行编译文件,VC++6.0中如何编译运行及调试C语言程序文件.docx
VC++6. 0中如何编译运行调试C语言程序 1?启动VC++6. 0 (如下图) [5>R?*16 00 P"! tptl tub go□賦星糸理技件□中出融Fz " 口仍 ...
- android6.0源码分析之Camera API2.0简介
1.Camera API2.0的架构图 Camera API2.0下的Camera架构与API1.0有所区别,下面将给出Camera API2.0以及Camera HAL3.2+下的Camera的总体 ...
最新文章
- 华为交换机ssh思科交换机_使用SSH或Telnet访问思科业务交换机CLI
- sql 删除重复记录保留一条_从零学会SQL·二——简单查询
- 三星ml1660拆机图解_炫龙DD2拆机,高性能的背后是怎样的面容?
- 高速公路、铁路交通的常识
- 无语!JDK 8 中的 HashMap 依然会死循环…
- 如何通过C#开发调用Skyline软件中提供的小工具
- 一个神奇的FLAC转MP3在线工具
- GET 和POST的用法
- D2RQ 的安装和基本使用
- Oracle 11.2.0.4.0 安装包校验
- 红米4a android9.0,小米-红米4A/5A-通刷-LOS-Beta4.0-安卓9.0.0-来去电归属-农历等-本地化增强适配...
- useNavigate使用报错
- 【量化笔记】技术指标 Technical Indicator
- 【云原生】设备云之前端可视化编程基础
- 京东入职一周感悟:4个匹配和4个观点
- SQL:如何给sql查询结果加上序号
- 使用fiddler实现苹果ios手机抓包--的补充
- 解决Android Studio中Flutter点击run出现CocoaPods not installed. Skipping pod install.
- Docker daemon 配置和故障排除
- windows文件副檔名說明
热门文章
- 太阳的光和灯光有什么区别_太阳光
- ds图—最小生成树_Java: Kruskal算法生成最小生成树(邻接矩阵)
- python dict遍历_python入门
- XML CDATA概述
- 新时代的网络工程师需要掌握哪些技能
- abaqus中元素过度失真是什么意思_[ABAQUS]非线性收敛问题的六个建议
- 目录文件和根目录文件夹
- 牛客练习赛84:牛客推荐系统开发之标签重复度(点分治+动态开点权值线段树)
- java拼接字符串 判断内容_java--字符串拼接比较
- 从严把控_精准把控 推动从严治党走深走实