qwqcode/SubRenamer

界面字体不是简体中文字形

Opened this issue · 5 comments

测试环境:Windows 10.0.17763.1217

20240506014915
20240506015056

确定是日本的字形,可以试试“门灰微”,效果如图。
20240506015411

之前测试另外的几款软件,字体似乎都有这样的毛病,默认情况下的中文是日本字形,很奇怪。每次都很少有人注意到。

另外提一下软件介绍:体积小:仅 15MB 左右

我看了看我之前收藏的0.5.2版本,才995KB啊。。。

另外提一下软件介绍:体积小:仅 15MB 左右

我看了看我之前收藏的0.5.2版本,才995KB啊。。。

之前的版本需要安装依赖的 .NET 运行库,所以才 900KB 左右,但实际上 .NET 运行库有几百兆的大小。v2 版本用 AvaloniaUI 和 .NET8 重构,使用 AOT 的方式编译无需额外安装运行库,且跨平台。15MB 的大小其实很小了,相较于其他软件动辄几百兆应该不算什么吧 :)

另外提一下软件介绍:体积小:仅 15MB 左右
我看了看我之前收藏的0.5.2版本,才995KB啊。。。

之前的版本需要安装依赖的 .NET 运行库,所以才 900KB 左右,但实际上 .NET 运行库有几百兆的大小。v2 版本用 AvaloniaUI 和 .NET8 重构,使用 AOT 的方式编译无需额外安装运行库,且跨平台。15MB 的大小其实很小了,相较于其他软件动辄几百兆应该不算什么吧 :)

现在2.0版本不也是依赖.NET 8吗?是不是需要安装.NET8 才能运行?反正我是.NET 6 7 8同时安装的。

其实我是这样看的,如果有运行库可以依赖的时候,就应该依赖运行库,强制让用户去安装,因为如果用户不愿意安装,开发者会倾向于将运行库打包进程序,这样会形成一个恶性循环。因为运行库的目的就是要减小软件体积的呀。

2.0 版本现在不再需要依赖于系统中安装的 .NET 8 运行库,因此无需额外安装即可运行。

尽管 AOT 编译会增加软件 exe 文件的大小,因为其中包含了部分 .NET Runtime(但仅包含 .NET Runtime 时的一个子集),另外通过 trim-self-contained 技术,能够进一步减小二进制文件的体积,最终得到一个大小合适的可执行文件,这缓解了 “开发者会倾向于将运行库打包进程序,这样会形成一个恶性循环” 的问题。

随着技术的不断发展和优化,可以预期在未来会有更多的优化措施来进一步缩小 .NET 运行时的子集大小。

开发者倾向于将运行库打包进程序是为了简化安装过程。对于 GUI 程序而言,简单的安装过程至关重要,因为并非所有用户都具备安装运行库的技能 :) 对于小工具而言,用户可能不愿意为了它而去寻找、下载并安装一个庞大的运行库 (除此之外需考虑到跨平台 macOS、Linux 等系统安装 dotnet 运行库更为麻烦)。因此,将运行库打包进程序可以提供更直接简单的用户体验,而不需要用户担心运行时版本的依赖问题。


另外,AOT 编译还带来了其他优势,但这里就不再详述 :)

2.0 版本现在不再需要依赖于系统中安装的 .NET 8 运行库,因此无需额外安装即可运行。

尽管 AOT 编译会增加软件 exe 文件的大小,因为其中包含了部分 .NET Runtime(但仅包含 .NET Runtime 时的一个子集),另外通过 trim-self-contained 技术,能够进一步减小二进制文件的体积,最终得到一个大小合适的可执行文件,这缓解了 “开发者会倾向于将运行库打包进程序,这样会形成一个恶性循环” 的问题。

随着技术的不断发展和优化,可以预期在未来会有更多的优化措施来进一步缩小 .NET 运行时的子集大小。

开发者倾向于将运行库打包进程序是为了简化安装过程。对于 GUI 程序而言,简单的安装过程至关重要,因为并非所有用户都具备安装运行库的技能 :) 对于小工具而言,用户可能不愿意为了它而去寻找、下载并安装一个庞大的运行库 (除此之外需考虑到跨平台 macOS、Linux 等系统安装 dotnet 运行库更为麻烦)。因此,将运行库打包进程序可以提供更直接简单的用户体验,而不需要用户担心运行时版本的依赖问题。

另外,AOT 编译还带来了其他优势,但这里就不再详述 :)

* https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-3/#benefits-of-using-native-aot-with-asp-net-core

* https://andrewlock.net/exploring-the-dotnet-8-preview-the-minimal-api-aot-template/

* https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/

感谢详尽的解答!!作者辛苦了!