winform迁移:从.net framework 到 .net9

闲话不说。我们走新建项目替换文件的方式,这样不用纠结项目文件的内容哪些有用、哪些没用、怎么修改。

一、建立同名项目

新项目没什么多余的东西,就几个关键文件:

  • 项目名.csproj 项目文件,拿这个替换掉原来的
  • Form1三个文件,程序主窗体,当然你可能改了很多
  • Program.cs,程序启动点

二、替换掉项目文件.csproj

替换掉以后目录中原来的文件会自动进入项目,如果有添加的链接文件需要重新添加一次。自己添加的nuget包需要重新添加一次。

其余属性根据需要修改。比如面向的windows版本。

三、删掉多余的配置性文件

由于项目组织方式不太一样,需要删掉一些文件:

  • app.config 用不用不太确定,似乎已经被废弃
  • Properties\AssemblyInfo.cs 删掉,不删掉会报错,配置信息重复
  • Properties\app.manifest 用不用不太确定,我删掉了程序仍然正常运行

四、处理代码不兼容的部分

由于升了C#版本,也换了类库,有些语法不兼容,有些类没有了,需要逐个修改。

总体而言,问题不大。

五、行为差异

这就要程序跑起来看了,我的程序用着挺好,点关闭就抛出异常。


(这里是文档结束)

相关推荐
步步为营DotNet13 小时前
深入理解IAsyncEnumerable:.NET中的异步迭代利器
服务器·前端·.net
玩泥巴的16 小时前
强的飞起的 Roslyn 编译时代码生成,实现抽象类继承与依赖注入的自动化配置
c#·.net·代码生成·roslyn
mudtools16 小时前
强的飞起的 Roslyn 编译时代码生成,实现抽象类继承与依赖注入的自动化配置
c#·.net
马达加斯加D17 小时前
Web框架 --- .Net中的Worker Service
.net
步步为营DotNet17 小时前
深入解读CancellationToken:.NET异步操作的精准控制
java·前端·.net
运维小文18 小时前
Centos7部署.net8和升级libstdc++
开发语言·c++·.net
步步为营DotNet18 小时前
深度探究.NET中的IAsyncEnumerable:异步迭代的底层奥秘与高效实践
.net
唐青枫18 小时前
C# 泛型数学:解锁真正的类型安全数值运算
c#·.net
追逐时光者18 小时前
C#/.NET/.NET Core技术前沿周刊 | 第 63 期(2025年11.24-11.30)
后端·.net