簡體   English   中英

從ASP.NET Web應用程序運行UWP應用程序

[英]Running UWP application from ASP.NET web application

我已經開發了一個UWP應用程序,現在我想從另一個ASP.NET MVC應用程序中運行它。 反正有這樣做嗎? 我知道這不能由Process類完成,因為UWP應用程序沒有獨立的.exe輸出。 任何建議表示贊賞。

在Microsoft文檔中搜索后,我發現以下文章:

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

啟動激活

您也可以使用啟動激活來啟動應用程序。 不需要設置,但是需要UWP應用程序的應用程序用戶模型ID(AUMID)。 AUMID是程序包系列名稱,后跟一個感嘆號和應用程序ID。 獲取程序包系列名稱的最佳方法是完成以下步驟:

  1. 打開Package.appxmanifest文件。
  2. 在包裝選項卡上,輸入包裝名稱。
  3. 如果未列出軟件包系列名稱,請打開PowerShell並運行>get-appxpackage MyPackageName查找PackageFamilyName。

可以在<Applications>元素下的Package.appxmanifest文件(在XML視圖中打開)中找到應用程序ID。

命令行

Windows 10 SDK安裝了用於執行UWP應用的啟動激活的工具。 它可以從命令行運行,並以要啟動的應用程序的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中正常工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM