WinUI 3 ClickOnce发布报错:无法加载Microsoft.ui.xaml.dll
WinUI 3 ClickOnce部署缺失
Microsoft.ui.xaml.dll问题解决 问题本质
Microsoft.ui.xaml.dll是Windows App SDK运行时的核心组件,不属于.NET Core 6.0框架范畴。目标机器未安装对应版本的Windows App SDK运行时,就会出现加载失败的崩溃问题。
确认依赖项
- 查看项目引用:在Visual Studio项目管理器中,展开「依赖项」→「框架」,可看到
Microsoft.WindowsAppSDK的具体版本,这就是你需要的依赖版本 - 系统版本要求:WinUI 3应用仅支持Windows 10 1809及以上版本,目标机器需满足此系统要求
解决部署依赖的具体方案
方案1:通过ClickOnce先决条件自动安装运行时
- 右键项目→属性→发布→配置文件设置→先决条件
- 在弹出的对话框中,勾选对应版本的Windows App SDK Runtime,选择「从与我的应用相同的位置下载」
- 重新发布后,ClickOnce安装程序会在安装应用前自动部署Windows App SDK运行时
方案2:手动添加运行时安装包到ClickOnce
如果先决条件列表中没有Windows App SDK选项,可手动操作:
- 下载对应版本的
WindowsAppRuntimeInstall.exe运行时安装包 - 将安装包放入项目目录,设置文件属性为「复制到输出目录:始终复制」
- 打开项目的
PublishProfile.pubxml文件,添加以下配置,让安装包被包含进ClickOnce发布包:
<PublishFile Include="WindowsAppRuntimeInstall.exe"> <Visible>False</Visible> <Group>Redist</Group> <TargetPath></TargetPath> <PublishState>Include</PublishState> <IncludeHash>True</IncludeHash> </PublishFile>
- 在应用启动逻辑中添加检测逻辑:若未检测到Windows App SDK运行时,调用
WindowsAppRuntimeInstall.exe /quiet静默安装
方案3:框架依赖模式的正确配置
若使用框架依赖部署,除了.NET Core 6.0运行时,还需配置:
- 在发布先决条件中同时勾选
.NET Core 6.0 Desktop Runtime和对应版本的Windows App SDK Runtime - 选择「从微软下载中心下载」,让ClickOnce自动引导用户下载安装所需依赖
内容的提问来源于stack exchange,提问作者Josh Bula
相关产品推荐
相关产品推荐

