问题描述
我已经使用 Visual Studio MSIX 打包项目打包了我的 Windows 应用程序:这是一个旁加载应用程序,使用证书,而不是 Microsoft Store 应用程序。 这很好 - 我获得了自动更新,并且用户无需管理员权限即可安装该软件包。
我希望能够从另一个应用程序打开此应用程序。 在这之前很简单 - 只需使用应用程序路径调用 Process.Start:“C:\Program Files\MyCompany\MyApp.exe”
但是隐藏了 MSIX 安装应用程序的可执行文件我怀疑它在“C:\
在 C:\Users\MyUser\AppData\Local\Packages{myappguid} 中似乎有一些有关安装的数据 - 但此处没有可用的可执行文件。
所以我的问题很简单:当应用程序是使用 MSIX 应用程序打包程序安装时,如何从另一个程序启动应用程序?
解决方法
事实证明这相当简单。
编辑您的 Package.appmanifest 并在 Application 元素中添加以下内容
<Extensions>
<uap5:Extension Category="windows.appExecutionAlias">
<uap5:AppExecutionAlias>
<uap5:ExecutionAlias Alias="MyApp.exe"/>
</uap5:AppExecutionAlias>
</uap5:Extension>
</Extensions>
并确保在清单文件 xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
的顶部引用此命名空间
并且也在可忽略的命名空间中。
重建并重新安装 MSIX。
在新的命令提示符下测试 - 只需输入 MyApp.exe - 它应该会打开应用程序。
现在第二个程序可以执行 Process.Start("MyApp.exe")
并且可以工作了。
参考:https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap5-extension