修改Package.appxmanifest创建AppExecutionAlias失败求助
MSIX包配置AppExecutionAlias报错及Application Id说明
问题背景
我有一个基于Avalonia的Windows UI应用、一个需命令行调用的控制台应用,以及两个类库,同属一个解决方案(UI应用依赖两个类库,控制台应用依赖一个)。计划用MSIX包部署所有内容,已添加Windows Application Packaging Project(WAP),并将UI和控制台应用加入WAP依赖项,添加Extensions节前打包正常。
为控制台应用配置AppExecutionAlias后,Package.appxmanifest出现两个错误:
'Category'属性无效——值'windows.appExecutionAlias'无效...元素'Extension'...包含无效子元素'AppExecutionAlias'...
同时疑问:Application Id的来源是什么?修改后是否需要同步其他配置?
解决AppExecutionAlias配置错误
原因分析
windows.appExecutionAlias是Windows 10 1803(版本17134)及以上版本支持的扩展,当前命名空间未指定对应版本,且扩展元素的命名空间使用错误。
修复步骤
- 添加对应版本的命名空间引用
在Package.appxmanifest根元素中添加uap5命名空间(对应Windows 10 1803),若需更高版本可替换为uap6/uap7等:
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
- 修正扩展元素的命名空间
将Extensions节中的uap:前缀替换为uap5::
<Extensions> <uap5:Extension Category="windows.appExecutionAlias"> <uap5:AppExecutionAlias> <uap5:ExecutionAlias Alias="FooConsole.exe" /> </uap5:AppExecutionAlias> </uap5:Extension> </Extensions>
Application Id相关说明
- 来源:Application Id是你在WAP的Package.appxmanifest中手动定义的唯一标识符,用于区分MSIX包内的多个独立应用程序。它不属于解决方案中其他项目的属性,仅存在于WAP的配置文件中。
- 同步要求:修改Application Id后,无需同步其他项目的配置,但要满足两个条件:
- 包内所有Application元素的Id必须唯一;
- Executable属性需准确指向对应应用的输出exe文件名(与WAP依赖项目的生成输出一致)。
内容的提问来源于stack exchange,提问作者Dave Doknjas
相关产品推荐
相关产品推荐

