Skip missed satellite assemblies forlders

This commit is contained in:
hishamco 2020-10-03 23:26:44 +03:00
parent 40524300bf
commit ce37d2f2d2
2 changed files with 35 additions and 20 deletions

View File

@ -79,14 +79,22 @@ namespace Oqtane.Controllers
// Get the satellite assemblies // Get the satellite assemblies
foreach (var culture in _localizationManager.GetSupportedCultures()) foreach (var culture in _localizationManager.GetSupportedCultures())
{ {
var assembliesFolderPath = Path.Combine(binFolder, culture);
if (culture == Constants.DefaultCulture) if (culture == Constants.DefaultCulture)
{ {
continue; 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.");
} }
} }

View File

@ -141,29 +141,36 @@ namespace Microsoft.Extensions.DependencyInjection
} }
var assembliesFolder = new DirectoryInfo(Path.Combine(assemblyPath, culture)); var assembliesFolder = new DirectoryInfo(Path.Combine(assemblyPath, culture));
foreach (var assemblyFile in assembliesFolder.EnumerateFiles(Constants.StalliteAssemblyExtension)) if (assembliesFolder.Exists)
{ {
AssemblyName assemblyName; foreach (var assemblyFile in assembliesFolder.EnumerateFiles(Constants.StalliteAssemblyExtension))
try
{ {
assemblyName = AssemblyName.GetAssemblyName(assemblyFile.FullName); AssemblyName assemblyName;
} try
catch {
{ assemblyName = AssemblyName.GetAssemblyName(assemblyFile.FullName);
Console.WriteLine($"Not Satellite Assembly : {assemblyFile.Name}"); }
continue; catch
} {
Console.WriteLine($"Not Satellite Assembly : {assemblyFile.Name}");
continue;
}
try try
{ {
Assembly assembly = AssemblyLoadContext.Default.LoadFromStream(new MemoryStream(File.ReadAllBytes(assemblyFile.FullName))); Assembly assembly = AssemblyLoadContext.Default.LoadFromStream(new MemoryStream(File.ReadAllBytes(assemblyFile.FullName)));
Console.WriteLine($"Loaded : {assemblyName}"); Console.WriteLine($"Loaded : {assemblyName}");
} }
catch (Exception e) catch (Exception e)
{ {
Console.WriteLine($"Failed : {assemblyName}\n{e}"); Console.WriteLine($"Failed : {assemblyName}\n{e}");
}
} }
} }
else
{
Console.WriteLine($"The satellite assemblies folder named '{culture}' is not found.");
}
} }
} }