软件包管理器>系统找不到指定的文件。 (来自HRESULT的异常:0x80070002)

时间:2018-12-20 01:03:41

标签: c# .net windows uwp

为我的用户获取软件包时,我在某些InstalledLocation中得到“系统找不到指定的文件”。有人知道为什么会这样吗?这个应用程式坏了吗?我需要获取InstalledLocation,是否可以在没有try catch块的情况下做到这一点?预先感谢

using System;
using System.IO;
using System.Security.Principal;
using Windows.Management.Deployment;
namespace ConsoleApp19
{
    class Program
    {
        static void Main(string[] args)
        {
            NTAccount acc = new NTAccount(WindowsIdentity.GetCurrent().Name);
            SecurityIdentifier sid = (SecurityIdentifier)acc.Translate(typeof(SecurityIdentifier));
            var packages = new PackageManager().FindPackagesForUser(sid.ToString());
            foreach (var package in packages)
            {
                Console.WriteLine(package.Id.FamilyName);
                try
                {
                    Console.WriteLine(package.InstalledLocation.Path);
                }
                catch (FileNotFoundException ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            Console.ReadKey();
        }
    }
}

https://docs.microsoft.com/en-us/uwp/api/windows.management.deployment.packagemanager.findpackagesforuser

1 个答案:

答案 0 :(得分:0)

在开发模式下安装的某些应用在访问installedLocation时会引发错误。要避免这种情况,只需检查他们是否在开发模式下吃饭

F11