From 2757dc7205c0be64f400808774bf0740fc5907e0 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Sun, 27 Oct 2019 14:22:50 +1100 Subject: [PATCH 1/3] Add known error when trying to retrieve UWP program's thumbnail --- Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs b/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs index c8a104b101..b69ad94a47 100644 --- a/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs +++ b/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs @@ -110,7 +110,7 @@ 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"))) return true; if (callingMethodName == "XmlNamespaces") From ea54abdfde6f9e228ff31bd63902aa64c3a77ce0 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Sun, 27 Oct 2019 19:04:10 +1100 Subject: [PATCH 2/3] Add file being held by another process error to known This occurs during app initialisation, and add empty list to allow continuing during debug --- Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs | 3 ++- Plugins/Wox.Plugin.Program/Programs/UWP.cs | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs b/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs index b69ad94a47..c803896ce6 100644 --- a/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs +++ b/Plugins/Wox.Plugin.Program/Logger/ProgramLogger.cs @@ -110,7 +110,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" || callingMethodName == "ImageFromPath"))) + || (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 360b744319..4ce5d76e24 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(); } } From d2ca74ecdfdf716a703dd5e4cfd9ded270018157 Mon Sep 17 00:00:00 2001 From: AT <14300910+theClueless@users.noreply.github.com> Date: Fri, 1 Nov 2019 21:44:55 +0200 Subject: [PATCH 3/3] added protection when creating uwp --- Plugins/Wox.Plugin.Program/Programs/UWP.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Plugins/Wox.Plugin.Program/Programs/UWP.cs b/Plugins/Wox.Plugin.Program/Programs/UWP.cs index 360b744319..d511888ab0 100644 --- a/Plugins/Wox.Plugin.Program/Programs/UWP.cs +++ b/Plugins/Wox.Plugin.Program/Programs/UWP.cs @@ -196,11 +196,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; });