From ce37d2f2d294c25c5e5bca927d3d1f9a4a70cbe8 Mon Sep 17 00:00:00 2001 From: hishamco Date: Sat, 3 Oct 2020 23:26:44 +0300 Subject: [PATCH] Skip missed satellite assemblies forlders --- .../Controllers/InstallationController.cs | 12 +++++- .../OqtaneServiceCollectionExtensions.cs | 43 +++++++++++-------- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/Oqtane.Server/Controllers/InstallationController.cs b/Oqtane.Server/Controllers/InstallationController.cs index d3529a98..29583e8a 100644 --- a/Oqtane.Server/Controllers/InstallationController.cs +++ b/Oqtane.Server/Controllers/InstallationController.cs @@ -79,14 +79,22 @@ namespace Oqtane.Controllers // Get the satellite assemblies foreach (var culture in _localizationManager.GetSupportedCultures()) { + var assembliesFolderPath = Path.Combine(binFolder, culture); if (culture == Constants.DefaultCulture) { continue; } - foreach (var resourceFile in Directory.EnumerateFiles(Path.Combine(binFolder, culture))) + if(Directory.Exists(assembliesFolderPath)) { - list.Add(Path.Combine(culture, Path.GetFileNameWithoutExtension(resourceFile))); + foreach (var resourceFile in Directory.EnumerateFiles(assembliesFolderPath)) + { + list.Add(Path.Combine(culture, Path.GetFileNameWithoutExtension(resourceFile))); + } + } + else + { + Console.WriteLine($"The satellite assemblies folder named '{culture}' is not found."); } } diff --git a/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs b/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs index 0b94b088..540f399c 100644 --- a/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs +++ b/Oqtane.Server/Extensions/OqtaneServiceCollectionExtensions.cs @@ -141,29 +141,36 @@ namespace Microsoft.Extensions.DependencyInjection } var assembliesFolder = new DirectoryInfo(Path.Combine(assemblyPath, culture)); - foreach (var assemblyFile in assembliesFolder.EnumerateFiles(Constants.StalliteAssemblyExtension)) + if (assembliesFolder.Exists) { - AssemblyName assemblyName; - try + foreach (var assemblyFile in assembliesFolder.EnumerateFiles(Constants.StalliteAssemblyExtension)) { - assemblyName = AssemblyName.GetAssemblyName(assemblyFile.FullName); - } - catch - { - Console.WriteLine($"Not Satellite Assembly : {assemblyFile.Name}"); - continue; - } + AssemblyName assemblyName; + try + { + assemblyName = AssemblyName.GetAssemblyName(assemblyFile.FullName); + } + catch + { + Console.WriteLine($"Not Satellite Assembly : {assemblyFile.Name}"); + continue; + } - try - { - Assembly assembly = AssemblyLoadContext.Default.LoadFromStream(new MemoryStream(File.ReadAllBytes(assemblyFile.FullName))); - Console.WriteLine($"Loaded : {assemblyName}"); - } - catch (Exception e) - { - Console.WriteLine($"Failed : {assemblyName}\n{e}"); + try + { + Assembly assembly = AssemblyLoadContext.Default.LoadFromStream(new MemoryStream(File.ReadAllBytes(assemblyFile.FullName))); + Console.WriteLine($"Loaded : {assemblyName}"); + } + catch (Exception e) + { + Console.WriteLine($"Failed : {assemblyName}\n{e}"); + } } } + else + { + Console.WriteLine($"The satellite assemblies folder named '{culture}' is not found."); + } } }