Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
kidzgy opened this issue May 5, 2024 · 7 comments
Closed

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

kidzgy opened this issue May 5, 2024 · 7 comments
Labels
bug Something isn't working

Comments

@kidzgy
Copy link

kidzgy commented May 5, 2024

测试环境:Windows 10.0.17763.1217

20240506014915
20240506015056

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

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

@kidzgy
Copy link
Author

kidzgy commented May 5, 2024

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

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

@qwqcode
Copy link
Owner

qwqcode commented May 6, 2024

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

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

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

@kidzgy
Copy link
Author

kidzgy commented May 6, 2024

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

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

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

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

@qwqcode
Copy link
Owner

qwqcode commented May 6, 2024

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

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

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

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


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

@kidzgy
Copy link
Author

kidzgy commented May 6, 2024

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/

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

@qwqcode qwqcode added the bug Something isn't working label May 6, 2024
@qwqcode
Copy link
Owner

qwqcode commented Sep 9, 2024

AvaloniaUI 上游已修复这个问题,下一版将包含此更新

AvaloniaUI/Avalonia#12349

@qwqcode qwqcode closed this as completed Sep 9, 2024
@qwqcode
Copy link
Owner

qwqcode commented Sep 9, 2024

Win 系统中文字形测试已修复

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants