From d1ca1e9b2c673a93e59067067ce521dcadd1a706 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Wed, 25 Nov 2020 12:26:46 +0100 Subject: [PATCH] Add a pre-container assembly verification for detecting failing plugins --- ArchiSteamFarm/Plugins/PluginsCore.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ArchiSteamFarm/Plugins/PluginsCore.cs b/ArchiSteamFarm/Plugins/PluginsCore.cs index 7c17a51aa..b83aadbd5 100644 --- a/ArchiSteamFarm/Plugins/PluginsCore.cs +++ b/ArchiSteamFarm/Plugins/PluginsCore.cs @@ -101,6 +101,20 @@ namespace ArchiSteamFarm.Plugins { ASF.ArchiLogger.LogGenericInfo(string.Format(CultureInfo.CurrentCulture, Strings.Initializing, nameof(Plugins))); + foreach (Assembly assembly in assemblies) { + ASF.ArchiLogger.LogGenericDebug(string.Format(CultureInfo.CurrentCulture, Strings.Initializing, assembly.FullName)); + + try { + // This call is bare minimum to verify if the assembly can load itself + assembly.GetTypes(); + } catch (Exception e) { + ASF.ArchiLogger.LogGenericError(string.Format(CultureInfo.CurrentCulture, Strings.WarningFailedWithError, assembly.FullName)); + ASF.ArchiLogger.LogGenericException(e); + + return false; + } + } + ConventionBuilder conventions = new(); conventions.ForTypesDerivedFrom().Export();