.net VS2008项目升级到VS2022完整教程

 .net VS2008项目升级到VS2022完整教程

升级原因:vs2008工具太老旧,很多功能是没有的,连相同引用的字段高亮显示都没有!看得眼睛都花了!

对开发效率和开发人员来说,非常不利,平时开发很耗时间,决定升级到vs2022工具上去。

 

第一个错误:直接用vs2022打开vs2008的项目会打不开。

按照vs2022的提示,点确认升级即可,升级后能打开项目了,但是会有很多错误,我会在下面的解释中逐个击破。

 

 第二个错误:

未能解析主引用“COM.Excel, Version=1.1.1606.17082, Culture=neutral”,因为它对框架程序集“Microsoft.VisualBasic.Compatibility, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”有间接依赖关系,而在当前目标框架中未能解析该程序集。“.NETFramework,Version=v3.5”。若要解决此问题,请移除引用“COM.Excel, Version=1.1.1606.17082, Culture=neutral”,或将应用程序的目标重新指向包含“Microsoft.VisualBasic.Compatibility, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的框架版本。

第二个错误解决方式:将.NET Framework 3.5 目标框架改为 .NET Framework 4.8 或者 4点几的也可以,看你需要,反正都是升级,建议直接升到4.8 吧。

 

 

第三个错误,启动调试的时候遇到 

检测到在集成的托管管道模式下不适用的 ASP.NET

system.web/identity@impersonate 设置为 true。

 

此应用程序在 system.web/httpModules 节中定义配置。

 

 

第三个错误解决方式:

1、将<validation validateIntegratedModeConfiguration="false" />设置为false

2、配置文件里设置为经典模式或者集成模式,注意,经典模式和集成模式的位置不一样,看图,我的项目是设置为经典模式。

 

 

 

 

 

 

 

 

第四个错误:

“/”应用程序中的服务器错误。

运行时错误

说明处理您的请求时发生异常。此外,对第一个异常执行自定义错误页时发生另一异常。已终止请求。

System.InvalidOperationException

  HResult=0x80131509

  Message=尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

  Source=<无法计算异常源>

  StackTrace:

<无法计算异常堆栈跟踪>

内部异常 1:

BadImageFormatException: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

 

 第四个错误解决方式:

因为webconfig配置文件里写了错误重定向页面,导致它跳转到了 ApplicationErroy.aspx页面,将整个黄色报错页面给覆盖了,

所以先将这个关掉,再重新运行项目就可以看到浏览器显示所有的报错信息。

 

 

第五个错误:

没有找到 WebReferences引用,在资源管理器搜索一下这个Reference.cs,没有包含在项目中,包含一下,这个报错就消失了。

 

 

第六个错误:

在项目中有些方法会报错,因为之前的版本太低,需要改到高版本,修改一下方法,或者换成别的方法,将报错修复掉。

 

第七个错误:

System.InvalidOperationException

  HResult=0x80131509

  Message=尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

  Source=<无法计算异常源>

  StackTrace:

<无法计算异常堆栈跟踪>

内部异常 1:

BadImageFormatException: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

因为电脑的目标平台默认应该是X64位的,将每个类库和项目的目标平台都改为X86,不然你连网页都打不开,会显示空白页面什么都看不到。

将目标平台都改为X86就好了,一定要同时改,不然其中有一个引用的类库没有改,是会显示空白页面的。

 

 

 

 第八个要点:

1、逐个类库和项目检查一下,引用是否生效,目标框架是否都改为了.NET Frameword 4.8 ,目标平台是否都改成了 X86,

一个一个类库去生成编译,看看单个类库有没有报错,如果有报错,就将该类库的错误解决掉。

2、所有的类库都可以编译通过了,再整个解决方案再编译一遍。如果没问题,基本上就差不多了。

3、再启动项目,看一下浏览器的显示有没有正常。

 

总结:开始我也觉得不太可能,vs2008的项目怎么升级到vs2022呢?基本上都要放弃了,

因为vs2008的开发工具太老了,开发起来很吃力。所以决定尝试升级,最终还是升级成功了,踩坑不易,点个赞吧。

很多事,觉得很难,实际上遇到问题,解决问题就是了。

还有一个,自己要懂得去搜资料,然后结合自己项目的实际情况去解决问题,

而不是一味的搬网上的答案过来,会很耗时间,有些时候,动一下脑子,转换一下思维,可能问题就解决了。

总耗时:大半天,自我感觉算快的了,有些项目升级可能搞个几天最后还都搞不定。自我评价:满意。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2023-03-17 16:07  Jankie1122  阅读(1344)  评论(0编辑  收藏  举报