解决.NET 4.0下无法直接运行.NET 2.0程序的问题
2011-06-20 17:45
1236 查看
如果你在使用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,在改变选择之后,会生成一个配置文件,内容如下:
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
[/code]
把这个文件名改成你需要运行的程序的配置名,同时把程序与配置文件放到一起,这个时候就可以打开 .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 使用新版本的 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[code]=
"true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
[/code]
把这个文件名改成你需要运行的程序的配置名,同时把程序与配置文件放到一起,这个时候就可以打开 .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 程序的问题,当然目前解决了 (转载--来于园中)
- .NET 4.0 无法直接运行 .NET 2.0 程序的问题
- 转:WIN7上搭建Windows Phone 8 开发环境——VMware Workstation下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法
- 解决VC9.0的程序无法在vista上正常运行的问题
- 如何解决Qt程序在其他电脑上无法运行的问题(Qt程序打包发布)
- .net利用程序集的GUID解决程序只能运行一次的问题
- 解决Themida加壳程序在VMware虚拟机无法运行问题TheMida Soory, this application cannt run under a Virtual Machine---
- IIS运行asp程序出现The requested resource is in use 和 安装.net 2.0 后运行2.0程序出现 Failed to access IIS metabase 错误的解决
- 关于2003Server下IIS运行.net程序IE无法访问出现403.1错误的解决过程
- 解决C#编写的程序无法在xp系统上运行的问题
- 解决用VC开发的64位程序无法运行的问题.
- 无法启动虚拟化 因为虚拟机管理程序未运行问题解决方法
- 解决win2003/2008下注册机或破解补丁程序无法运行问题
- 解决Win32 SDK编程添加list control控件程序无法运行的问题
- android程序在真机上运行无法显示所有LogCat信息问题解决
- 安装SQL Server 2000时出现以下错误提示:“以前的某个程序安装已在安装计算机创建挂起的文件操作,运行安装程序之前必须重新启动计算机” 说明:如果重启计算机无法解决问题,可能有以下两个原因
- PowerShell 2.0 脚本无法运行问题解决方法
- 【Android Studio】Android Monitor无法显示运行程序问题解决
- 解决Composer安装的Yii2.0运行资源无法加载的问题:
- 解决调试asp.net程序时无法修改代码的问题(提示: 当调试器已经附加到已经运行的进程...)