【问题标题】:Windows 10 UWP App Launch from Package List (FindPackage)从包列表 (FindPackage) 启动 Windows 10 UWP 应用
【发布时间】:2020-11-09 21:00:49
【问题描述】:

我的目标是从用户在我的 UWP 应用中指定的应用启动文件。当我点击 Launch 按钮时,我向后导航到我的 AppData (UWP) Packages 文件夹,然后我遍历文件夹并利用 PackageManager 类按名称检索包。我尝试使用 FindPackage (here) 使用正确的包名称初始化一个包。但是,它对我不起作用,并且在调用 FindPackage 时出现异常“值不在预期范围内”。

这是我迄今为止尝试过的:

StorageFolder currApp = Windows.Storage.ApplicationData.Current.LocalFolder;
Debug.WriteLine(currApp.Path);

// move up and get parent folder for all packages
DirectoryInfo currAppFolder = Directory.GetParent(currApp.Path);

DirectoryInfo pkgs = Directory.GetParent(currAppFolder.FullName);
StorageFolder pkgFldr = await StorageFolder.GetFolderFromPathAsync(pkgs.FullName);

var pkgDirs = await pkgFldr.GetFoldersAsync();

Package UwpPkg = null;
var PkgMgr = new PackageManager();

foreach (StorageFolder dir in pkgDirs)
{
        string folderName = dir.Name;

        var currPkg = PkgMgr.FindPackage(folderName);

        if (filter == currPkg.DisplayName)
        {
                // we found it
                UwpPkg = currPkg;
                break;
        }
}

我还已经配置了必要的权限(重述:broadFileSystemAccess)。

是否有人也有这样的问题/可能的解决方案?谢谢!

【问题讨论】:

    标签: c# uwp


    【解决方案1】:

    从包列表 (FindPackage) 启动 Windows 10 UWP 应用

    请查看PackageManager 文档,此api 需要packageQuery 能力

    <Package
    xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
    IgnorableNamespaces="uap mp rescap" >
    
    ......
    
     <rescap:Capability Name="packageQuery" />
    

    请注意

    此方法需要管理员权限。返回的包可以为当前用户或其他用户安装。所以请在提升的桌面扩展中调用上面的内容。如需更多信息,您可以访问 stefan 的博客 App Elevation Samples

    【讨论】:

    • 是的,packageQuery 做到了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 2016-02-01
    相关资源
    最近更新 更多