After upgrading to ASP.NET Zero 12.4.2, in production build, I got the following exception with running umsplus.ServiceCore.Host.exe.
Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'Castle.Services.Logging.SerilogIntegration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc'. The system cannot find the file specified.
File name: 'Castle.Services.Logging.SerilogIntegration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc'
at System.Reflection.RuntimeAssembly.InternalLoad(AssemblyName assemblyName, StackCrawlMark& stackMark, AssemblyLoadContext assemblyLoadContext, RuntimeAssembly requestingAssembly, Boolean throwOnFileNotFound)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
at Serilog.Settings.Configuration.ConfigurationReader.LoadConfigurationAssemblies(IConfiguration section, AssemblyFinder assemblyFinder)
at Serilog.Settings.Configuration.ConfigurationReader..ctor(IConfiguration configSection, AssemblyFinder assemblyFinder, ConfigurationReaderOptions readerOptions, IConfiguration configuration)
at Serilog.ConfigurationLoggerConfigurationExtensions.GetConfigurationReader(IConfiguration configuration, ConfigurationReaderOptions readerOptions, DependencyContext dependencyContext)
at Serilog.ConfigurationLoggerConfigurationExtensions.Configuration(LoggerSettingsConfiguration settingConfiguration, IConfiguration configuration, ConfigurationReaderOptions readerOptions)
at Serilog.ConfigurationLoggerConfigurationExtensions.Configuration(LoggerSettingsConfiguration settingConfiguration, IConfiguration configuration, String sectionName, DependencyContext dependencyContext)
at umsplus.ServiceCore.ServiceCoreAppModule.PreInitialize() in E:\jenkins_ws\workspace\WmsPLUS_Developement\trunk\services\ServiceCore.Host\ServiceCoreAppModule.cs:line 50
at Abp.Modules.AbpModuleManager.<>c.<StartModules>b__15_0(AbpModuleInfo module)
at System.Collections.Generic.List1.ForEach(Action
1 action)
at Abp.Modules.AbpModuleManager.StartModules()
at Abp.AbpBootstrapper.Initialize()
at umsplus.ServiceCore.Program.<>c.<CreateHostBuilder>b__2_1(IServiceCollection services) in E:\jenkins_ws\workspace\WmsPLUS_Developement\trunk\services\ServiceCore.Host\Program.cs:line 54
at Microsoft.Extensions.Hosting.HostBuilder.InitializeServiceProvider()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at umsplus.ServiceCore.Program.Main(String[] args) in E:\jenkins_ws\workspace\WmsPLUS_Developement\trunk\services\ServiceCore.Host\Program.cs:line 31
at umsplus.ServiceCore.Program.<Main>(String[] args)
However, dotnet umsplus.Web.Host.dll runs fine.
In our production build, umsplus.ServiceCore.Host.exe and umsplus.Web.Host.dll are in the same folder sharing the same Castle.Services.Logging.SerilogIntegration.dll.
The version of Castle.Services.Logging.SerilogIntegration.dll in the folder is 5.1.1.
nuget package castle.core-serilog\5.1.1\lib\net6.0\Castle.Services.Logging.SerilogIntegration.dll, the latest version 5.1.1.
<PackageReference Include="Castle.Core-Serilog" Version="5.1.1" />
The dependency:
umsplus.Web.Host -> umsplus.Web.Core -> umsplus.EntityFrameworkCore -> umsplus.Core -> Abp.ZeroCore.EntityFrameworkCore 8.4.0 -> Abp.ZeroCore 8.4.0 -> Abp.Zero.Common 8.4.0 -> Abp 8.4.0 -> Castle.Core (>= 5.1.1) umsplus.Web.Host -> Castle.Core-Serilog 5.1.1 -> Castle.Core (= 5.1.1).
The decompiler info on Castle.Services.Logging.SerilogIntegration.dll.
#region Assembly Castle.Services.Logging.SerilogIntegration, Version=5.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc // C:\Users<username>.nuget\packages\castle.core-serilog\5.1.1\lib\net6.0\Castle.Services.Logging.SerilogIntegration.dll // Decompiled with ICSharpCode.Decompiler 8.1.1.7464 #endregion
Not sure why there is a version conflict / mismatch 5.0.0.0 and 5.1.1.
In debug build, umsplus.ServiceCore.Host.exe and umsplus.Web.Host.dll run is separate folder. They run fine without the version conflict issue.
2 Answer(s)
-
0
Adding <PackageReference Include="Castle.Core-Serilog" Version="5.1.1" /> to ServiceCore,Host project made the error go away.
-
0
Hi @hongbing.wang
Thanks for sharing the solution. It will help others who want to use Serilog.