diff --git a/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs b/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs index ed3dd89427..e3dec0dfa3 100644 --- a/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs +++ b/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs @@ -111,7 +111,8 @@ namespace Wox.Plugin.Program.Logger private static bool IsKnownUWPProgramError(Exception e, string callingMethodName) { if (((e.HResult == -2147024774 || e.HResult == -2147009769) && callingMethodName == "ResourceFromPri") - || (e.HResult == -2147024894 && callingMethodName == "LogoPathFromUri")) + || (e.HResult == -2147024894 && (callingMethodName == "LogoPathFromUri" || callingMethodName == "ImageFromPath")) + || (e.HResult == -2147024864 && callingMethodName == "InitializeAppInfo")) return true; if (callingMethodName == "XmlNamespaces") diff --git a/Plugins/Wox.Plugin.Program/Programs/UWP.cs b/Plugins/Wox.Plugin.Program/Programs/UWP.cs index cb1fa54211..5c4c3cdeb1 100644 --- a/Plugins/Wox.Plugin.Program/Programs/UWP.cs +++ b/Plugins/Wox.Plugin.Program/Programs/UWP.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; @@ -86,6 +86,8 @@ namespace Wox.Plugin.Program.Programs var e = Marshal.GetExceptionForHR((int)hResult); ProgramLogger.LogException($"|UWP|InitializeAppInfo|{path}" + "|Error caused while trying to get the details of the UWP program", e); + + Apps = new List().ToArray(); } } @@ -196,11 +198,20 @@ namespace Wox.Plugin.Program.Programs ps = ps.Where(p => { bool valid; + try + { + var f = p.IsFramework; + var d = p.IsDevelopmentMode; + var path = p.InstalledLocation.Path; + valid = !f && !d && !string.IsNullOrEmpty(path); + } + catch (Exception e) + { + ProgramLogger.LogException("|UWP|CurrentUserPackages|An unexpected error occured and " + + $"unable to verify if package is valid", e); + return false; + } - var f = p.IsFramework; - var d = p.IsDevelopmentMode; - var path = p.InstalledLocation.Path; - valid = !f && !d && !string.IsNullOrEmpty(path); return valid; });