在.NET Framework中运行Avalonia应用:AppBuilder问题及解决方案
问题解决:.NET Framework下Avalonia AppBuilder不可用的替代方案
核心原因
netstandard只是跨平台API规范,并非可执行的运行时环境,Avalonia的AppBuilder是和具体运行时绑定的启动类,自然无法在netstandard环境下使用——这就是你降级到netstandard2.0后遇到问题的根本原因。
正确解决方案
不需要替换原有的BuildAvaloniaApp代码,只需要调整项目的目标框架配置:
- 打开项目的
.csproj文件 - 将单一目标框架节点:
修改为多目标框架,同时包含.NET Core/.NET 5+版本和你需要的.NET Framework版本(以net48为例):<TargetFramework>net7.0</TargetFramework><TargetFrameworks>net7.0;net48</TargetFrameworks>
补充说明
- 调整后,原有的启动代码完全可以继续使用:
public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure<App>() .UsePlatformDetect() .LogToTrace() .UseReactiveUI(); - Avalonia会自动针对不同的目标框架适配对应的运行时实现,不管是.NET 7还是.NET Framework 4.8环境,AppBuilder都能正常工作。
- 无需寻找.NET Framework或netstandard专属的Avalonia模板,官方模板通过多目标配置即可实现跨.NET Core/.NET Framework的兼容。
内容的提问来源于stack exchange,提问作者HEY-hey
相关产品推荐
相关产品推荐

