博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET 4.0 兼容 .NET 2.0 的方法
阅读量:4589 次
发布时间:2019-06-09

本文共 1157 字,大约阅读时间需要 3 分钟。

      使用.net开发桌面应用,广大亲门最头疼的莫过于客户端部署的问题。基于.net 2.0 的winfrom程序因为 Framework 的分发包大小为20M左右还好解决,不幸的是如果项目中使用了Wcf,wpf 等技术,那个350多M的 .net 3.5 sp1 可以让亲欲哭无泪了。虽然民间流传着很多.net 3.5的精简包,但必竟不是官方的解决方案。

 

win7自带了.net 3.5 sp1,而且win7的装机量已经很高,所以我们大可以将项目升级到 .net 3.5。

目标:

基于.net 3.5开发的应用程序, 在win7 或安装有.net 3.5 sp1 的机器上可以直接安装运行,而在其它机器上则需要安装.net 4.0框架,使.net 3.5应用程序运行在.net 4.0框架上。

 

 

本文的解决方案如下:

1、项目目标框架为 .net 3.5。

2、客户端部署使用.net 4.0 Framework 代替 3.5 sp1;4.0的分发包为48M。

3、软件安装时检测到系统安装有.net 3.5 sp1 则不安装 4.0框架。

 

要解决的问题:

1、首先需要使 .net 3.5编写的应用程序可以在.net 4.0 环境中运行。

我们可以在app.config中添加如下配置节:

 

<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

</startup>

该节点表示

表示使用.NET4.0运行时来运行程序。有关 startup 的详细信息请移步 。

这样我们新可以在只安装有.net 4.0的机器上运行 .net 3.5编写的应用程序了。

 

等等,还没有万事大吉,上面的设置如果在只装有 .net3.5框架 而没有安装 .net 4.0框架的机器上运行会报如下错误:

"好难过,这不是我要的那种结果,结果!" ,解决办法如下:

<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

<supportedRuntime version="v2.0.50727"/>

</startup>

红色部分是我们新添加的,目的是指定软件支持在v2.0.50727环境中运行。(ps: .net 3.5 的clr运时环境为 2.0)

 

Oh oh 目标达到,现在软件已经可以在只安装.net 4.0 或 只安装有 .net 3.5的机器上运行了。

 

以上内容非本人原创,供参考!

转载于:https://www.cnblogs.com/Ares-blog/p/3264759.html

你可能感兴趣的文章
CSS3box-shadow属性的使用
查看>>
快速找到未知长度的单链表的中间结点
查看>>
20180320作业1:源代码管理工具调查
查看>>
智能路由器-OpenWRT 系列一 (OpenWRT 刷机)
查看>>
SQLAlchemy与sql语句
查看>>
JAVA核心技术I---JAVA基础知识(回顾)
查看>>
ACCESS数据库注入
查看>>
MFC 对话框 静态文本 编辑框
查看>>
docker使用技巧小记
查看>>
PAT(A) 1036. Boys vs Girls (25)
查看>>
洛谷 P2837 晚餐队列的安排
查看>>
【摘要】JavaScript 的性能优化:加载和执行
查看>>
Alpha 冲刺报告(3/10)
查看>>
C语言复习---选择法排序
查看>>
弹性盒模型------新布局的宠儿
查看>>
搜狗前端笔试题
查看>>
存储过程详解
查看>>
C# 使用Emit实现动态AOP框架 进阶篇之异常处理
查看>>
开源代码网站(转)
查看>>
C#设计模式(1)——单例模式
查看>>