我开发了一个UWP应用程序,现在我想从另一个ASP.NET MVC应用程序运行它。反正有没有这样做?
我知道Process
类无法做到这一点,因为UWP应用程序没有独立的.exe
输出。
任何建议都表示赞赏。
答案 0 :(得分:1)
在Microsoft Documents中搜索后,我发现了以下文章:
https://docs.microsoft.com/en-us/windows/uwp/xbox-apps/automate-launching-uwp-apps
启动激活
您也可以使用启动启动应用 激活。无需设置,但应用程序用户模型ID 需要(AUMID)UWP应用程序。 AUMID是包系列名称 后跟感叹号和应用程序ID。最好的方法 获取包的系列名称是为了完成以下步骤:
- 打开Package.appxmanifest文件。
- 在“包装”选项卡上,输入包名称。
- 如果未列出Package系列名称,请打开 PowerShell并运行
醇>>get-appxpackage MyPackageName
来查找 PackageFamilyName。可以在中找到应用程序ID Package.appxmanifest文件(在XML视图中打开)下
<Applications>
元素。命令行
安装了用于执行UWP应用程序启动激活的工具 使用Windows 10 SDK。它可以从命令行运行 将应用程序的AUMID作为参数启动。
C:\Program Files (x86)\Windows Kits\10\App Certification Kit\microsoft.windows.softwarelogo.appxlauncher.exe <AUMID>
它看起来像这样:
"C:\Program Files (x86)\Windows Kits\10\App Certification Kit\microsoft.windows.softwarelogo.appxlauncher.exe" MyPackageName_ph1m9x8skttmg!AppId
首先我尝试使用协议激活,但它失败了,没有明显的原因,所以我在启动激活时拍了一下它对我有用。假设您拥有UWP应用程序源(例如我的情况),在检索应用程序用户模型ID之后,您应该做的就是创建一个Process
对象并从您的代码中启动它,如下所示:
var runApp = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = @"C:\Program Files (x86)\Windows Kits\10\App Certification Kit\microsoft.windows.softwarelogo.appxlauncher.exe",
Arguments = "MyPackageName_ph1m9x8skttmg!AppId"
}
};
runApp.Start();
它也适用于ASP.NET ,没有任何问题。