Диспетчер пакетов> Система не может найти указанный файл.(Исключение из HRESULT: 0x80070002) - PullRequest
0 голосов
/ 20 декабря 2018

При получении пакетов для моего пользователя я получаю сообщение "Система не может найти указанный файл" в каком-то установленном местоположении.Кто-нибудь знает, почему это происходит?Эти приложения не работают?Мне нужно получить 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 голосов
/ 04 марта 2019

Некоторые приложения, установленные в режиме разработки, выдают ошибку при доступе к установленному местоположению.Чтобы избежать этого, просто проверьте, ели ли они в режиме разработки

if (!package.IsDevelopmentMode)
{
}
...