如何将MSIX的开始菜单项限制为仅显示UI应用?
解决方法
要让打包后的控制台应用不在开始菜单中显示,只需修改Package.appxmanifest中对应控制台应用的配置,有两种常用方式:
方式一:修改现有控制台应用的Application节点
找到manifest中对应控制台应用的<Application>节点,在其下的<uap:VisualElements>标签中添加Visibility="hidden"属性,示例如下:
<Application Id="ConsoleApp" Executable="ConsoleApp.exe" EntryPoint="Windows.FullTrustApplication"> <uap:VisualElements DisplayName="ConsoleApp" Square150x150Logo="Assets\ConsoleApp150x150.png" Square44x44Logo="Assets\ConsoleApp44x44.png" Description="ConsoleApp" BackgroundColor="transparent" Visibility="hidden"/> <!-- 添加这一行 --> </Application>
添加该属性后,系统会隐藏该应用的开始菜单条目,但控制台应用仍可被其他程序(比如你的UI应用)正常调用并传递参数。
方式二:将控制台应用作为UI应用的扩展注册
如果控制台应用仅需被UI应用调用,可直接删除控制台应用对应的独立<Application>节点,转而在UI应用的<Application>节点下添加全信任进程扩展配置:
<Application Id="UIApp" Executable="UIApp.exe" EntryPoint="Windows.FullTrustApplication"> <!-- UI应用的VisualElements等配置 --> <Extensions> <!-- 添加控制台应用作为扩展 --> <desktop6:Extension Category="windows.fullTrustProcess" Executable="ConsoleApp.exe"/> </Extensions> </Application>
这种方式下,控制台应用不会被视为独立应用,自然不会在开始菜单生成条目,同时你可以通过UI应用的代码启动控制台进程并传入所需参数。
注意:修改manifest后,需要重新编译打包项目,重新安装后生效。
内容的提问来源于stack exchange,提问作者Dave Doknjas
相关产品推荐
相关产品推荐

