При получении пакетов для моего пользователя я получаю сообщение "Система не может найти указанный файл" в каком-то установленном местоположении.Кто-нибудь знает, почему это происходит?Эти приложения не работают?Мне нужно получить 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
Некоторые приложения, установленные в режиме разработки, выдают ошибку при доступе к установленному местоположению.Чтобы избежать этого, просто проверьте, ели ли они в режиме разработки
if (!package.IsDevelopmentMode) { }