[英]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。 獲取程序包系列名稱的最佳方法是完成以下步驟:
- 打開Package.appxmanifest文件。
- 在包裝選項卡上,輸入包裝名稱。
- 如果未列出軟件包系列名稱,請打開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.