winform迁移:从.net framework 到 .net9

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

一、建立同名项目

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

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

二、替换掉项目文件.csproj

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

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

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

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

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

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

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

总体而言,问题不大。

五、行为差异

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


(这里是文档结束)

相关推荐
海边的椰子树16 分钟前
非常方便的MySQL迁移数据ClickHouse工具
数据库·mysql·clickhouse·迁移
专注VB编程开发20年2 小时前
MQTT傻瓜化调用组件,零成本学习.NET开发,上位机开发
学习·机器学习·.net
步步为营DotNet4 小时前
深度剖析.NET 中CancellationToken:精准控制异步操作的关键
java·前端·.net
一个帅气昵称啊4 小时前
.Net优雅实现AI知识库基于Ollama模型,Qdrant作为向量数据库实现RAG流程AI检索增强
人工智能·ai·.net·rag·qdrant
我是唐青枫13 小时前
C#.NET ConcurrentDictionary<TKey, TValue> 深度解析:原理与实践
c#·.net
Traced back1 天前
C#/.NET 常用控件、属性、方法和语句大全(或许全)
开发语言·c#·.net
步步为营DotNet1 天前
深度探究.NET中WeakReference:灵活内存管理的利器
java·jvm·.net
我是唐青枫2 天前
C#.NET ConcurrentBag<T> 设计原理与使用场景
c#·.net
该用户已不存在2 天前
不止是初始化,4个C# 构造函数解析与实例
后端·c#·.net
ou.cs2 天前
WPF TreeView 自动展开所有节点:附加行为(Attached Behavior)保姆级实现教程
c#·.net·wpf