从ASP.NET Web应用程序运行UWP应用程序

时间:2017-08-27 09:37:40

标签: c# .net asp.net-mvc uwp

我开发了一个UWP应用程序,现在我想从另一个ASP.NET MVC应用程序运行它。反正有没有这样做? 我知道Process类无法做到这一点,因为UWP应用程序没有独立的.exe输出。 任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

在Microsoft Documents中搜索后,我发现了以下文章:

https://docs.microsoft.com/en-us/windows/uwp/xbox-apps/automate-launching-uwp-apps

  

启动激活

     

您也可以使用启动启动应用   激活。无需设置,但应用程序用户模型ID   需要(AUMID)UWP应用程序。 AUMID是包系列名称   后跟感叹号和应用程序ID。最好的方法   获取包的系列名称是为了完成以下步骤:

     
      
  1. 打开Package.appxmanifest文件。
  2.   
  3. 在“包装”选项卡上,输入包名称。
  4.   
  5. 如果未列出Package系列名称,请打开   PowerShell并运行>get-appxpackage MyPackageName来查找   PackageFamilyName。
  6.         

    可以在中找到应用程序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 ,没有任何问题。