如何让MAUI应用在Windows系统开机时自动启动?
MAUI Windows应用开机自启解决方案及EXE运行错误说明
一、Debug目录EXE运行错误原因
你直接运行MAUIApp1.exe出现KERNELBASE.dll异常,核心原因是:MAUI Windows应用基于MSIX打包架构,Debug生成的EXE并非独立可执行文件,它需要依赖MSIX运行环境才能正常启动。只有将应用打包为MSIX并安装后,才能通过系统应用启动流程正常运行,单独执行该EXE会缺少必要依赖和上下文,必然触发异常。
二、MAUI Windows应用开机自启可行方案
场景1:应用已发布到Windows Store/安装MSIX包
1. 任务计划程序配置
- 打开「任务计划程序」创建新任务:
- 触发器设置为「登录时」
- 操作选择「启动程序」,程序或脚本填
explorer.exe,添加参数填shell:appsFolder\[PackageFamilyName]![AppID]
- 获取
PackageFamilyName和AppID的方式:- 打开PowerShell执行
Get-StartApps,找到你的应用名称,对应的AppId就是PackageFamilyName!AppID格式的字符串,直接复制即可 - 或在Windows设置→应用→应用和功能中找到应用,点击「高级选项」查看「包系列名称」,
AppID可在项目属性或Package.appxmanifest的<Application Id="..." />节点中获取
- 打开PowerShell执行
2. 生成快捷方式到启动目录
MSIX应用无法直接创建普通快捷方式,可通过PowerShell脚本生成:
$WshShell = New-Object -ComObject WScript.Shell # 替换为你的应用标识和自定义快捷方式名称 $appId = "YourPackageFamilyName!YourAppID" $shortcutPath = "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\MyMAUIApp.lnk" $Shortcut = $WshShell.CreateShortcut($shortcutPath) $Shortcut.TargetPath = "explorer.exe" $Shortcut.Arguments = "shell:appsFolder\$appId" $Shortcut.Save()
执行脚本后,开机登录时应用会自动启动。
3. 注册表配置
编辑当前用户自启注册表项:
- 打开注册表编辑器,定位到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run - 新建字符串值(名称自定义,如
MyMAUIStartup),数据填explorer.exe shell:appsFolder\[PackageFamilyName]![AppID] - 重启后即可生效
场景2:开发调试阶段测试自启
如果不想每次打包MSIX,可通过任务计划调用dotnet命令启动项目:
- 任务计划操作中,程序或脚本填
dotnet.exe,参数填run --project "D:\CrossPlatform\MAUIApp1\MAUIApp1\MAUIApp1.csproj" --framework net6.0-windows10.0.19041.0 - 注意替换项目路径和框架版本为你的实际配置
内容的提问来源于stack exchange,提问作者Abanoub Zak
相关产品推荐
相关产品推荐

