Replies: 2 comments 4 replies
-
小声问下,是不是意味着我可以在 ubuntu 上修改代码并编译 ce 了 |
Beta Was this translation helpful? Give feedback.
3 replies
-
感觉坑还是有点大了
…---原始邮件---
发件人: ***@***.***>
发送时间: 2025年8月22日(周五) 下午4:48
收件人: ***@***.***>;
抄送: ***@***.***>;"Team ***@***.***>;
主题: Re: [PCL-Community/PCL2-CE] [Dev] 关于迁移到 .NET 8 的各种信息 (Discussion #1400)
暂时吗....我觉得 CE 的一堆 P/Invoke 永远不会有人去写跨平台实现 (还有那个这辈子跨不了的 WPF
FE015165F6D62C8B72B9CEA9B0F395FD.jpg (view on web)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are on a team that was mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
本通知面向 @PCL-Community/developers 及社区版其他开发者。
发生了什么
喜报!在经历了两个多周的折腾之后,CE 主分支终于迁移到 .NET 8 了!
这意味着你可以使用 .NET 社区的强大生态来更加轻松地做各种功能,同时 .NET 8 也带来了各种方便的特性和巨量性能提升 (是真的巨量,迁移个框架让动画变流畅了解一下) 以及翻倍的整体构建速度 (约 1 min 50 s -> 约 50 s )。
当然,将本地开发环境完全迁移到 .NET 8 可能需要手动处理一些东西。
具体影响
首先,最离谱的影响就是,我们现在建议所有开发者常备一个 Rider,因为 VS 对新框架的支持有时候还不如 Rider 好,巨硬这草台班子也是真的可以了。
框架和 SDK 要求
当前目标框架为
net8.0-windows
,即面向 .NET 8 的 Windows 平台,但需要使用 .NET 9+ SDK 以支持 C# 13.0,VS 构建工具默认包含 .NET 9 SDK,通常无需额外操作。.NET 9 目前应当支持 Windows 10 1607 以上的任意版本,框架升个级对系统版本要求反倒变低了。Core 项目构建的自定义脚本使用
pwsh
而不是powershell
以支持跨平台的编译,但这是几周前的更改,现在已经迁移到源生成器,项目中已无构建脚本,应无需额外操作。如果你有构建旧代码的需求,请参考官方文档安装 PowerShell 7。同步上游更改
由于涉及框架迁移的巨大改动,我们建议所有当前存在 PR 的开发者立即以正常 merge 方式向 PR 分支同步上游更改,否则当功能开发完成后,你有概率会突然发现你的 PR 几乎无法合并或合并后完全不符合预期行为。
项目属性文件
新的 SDK 风格项目文件无需手动添加对单个文件的引用——这意味着只要不更改项目结构或管理 NuGet 依赖,你永远都不需要动这个文件了,省去了 99% 的合并冲突。如果你同步上游时发现 vbproj 文件有冲突,且确保自己没有对项目结构或 NuGet 依赖做出改动,直接让上游文件覆盖掉本地文件即可,它应当可以直接用。
同时,自动生成项目文件内容 (尤其是 VS) 对一些定制化特性的支持不完善,这要求开发者在对项目结构和依赖做出改动时手写 DOM 内容而不是依靠 GUI 编辑器,由 GUI 编辑器改动项目文件有概率产生破坏性更改。因此,如果你不熟悉项目文件的语法和定制化特性,请不要更改它,或是去 CE 开发群等地方求助。
构建体系和 CI
如果同步最新源码之后构建失败,可以尝试删掉
Plain Craft Launcher 2
目录中的bin
和obj
目录并重新构建。构建工具应当使用 .NET 的新版 MSBuild.dll (或是直接用
dotnet build
命令,当前版本 17.14) 而不是基于 .NET Framework 的旧版 MSBuild.exe (当前版本 17.0),如果你是 Rider 用户且设置过这个参数,请把它改回默认值或手动指定正确的工具。现在的 CI 已经迁移到 Ubuntu 环境,因此如果你想改动 CI 文件请注意使用 bash 而不是 pwsh 语法。同时开发时也请注意,Linux 环境的文件路径是区分大小写的,即
/opt
与/Opt
是两个不同的目录,a.txt
与A.TXT
是两个不同的文件。请在书写任何路径时都严格遵循大小写,以防止 CI 构建与本地构建产生不一致的行为。其它
若你发现了什么其它需要注意的事情,欢迎在评论中提出
Beta Was this translation helpful? Give feedback.
All reactions