zoukankan      html  css  js  c++  java
  • 解决.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 



    返回导读目录,阅读更多随笔



    分割线,以下为博客签名:

    软件臭虫情未了
    • 编码一分钟
    • 测试十年功


    随笔如有错误或不恰当之处、为希望不误导他人,望大侠们给予批评指正。

  • 相关阅读:
    tp5 window环境迁移到一键lnmp流程问题笔记
    构建:什么是构建
    requests--etree--xpath
    python-requests
    python正则表达式03--字符串中匹配数字
    python正则表达式02--findall()和search()方法区别,group()方法
    python正则表达式01--贪心算法和非贪心算法findall()
    UIViewController的生命周期(根视图view从无到有的过程)
    CoreData基础
    XMPP即时通信(基础)
  • 原文地址:https://www.cnblogs.com/08shiyan/p/2085411.html
Copyright © 2011-2022 走看看