zoukankan      html  css  js  c++  java
  • 如何让基于.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系统。

  • 相关阅读:
    1030
    Android网络:开发浏览器(二)——功能完善之长按网页图片菜单
    表达式(四则运算)计算的算法
    [置顶] 得失寸心知
    参考storm中的RotatingMap实现key超时处理
    分布式事务 & 两阶段提交 & 三阶段提交
    遗传算法
    模拟退火算法
    Mysql死锁问题解决方式 & 聚簇索引、隔离级别等知识
    Mysql表锁、行锁、页锁
  • 原文地址:https://www.cnblogs.com/justnow/p/11540045.html
Copyright © 2011-2022 走看看