无法加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Logging”

RJN

我有启用 COM-Interop 的 C# 库 (DLL),我在其中配置了 App.config 以启用企业日志记录。但是,一旦我的 BootStrapper.Run 从 COM dll 中调用,我就会不断收到以下错误,尽管我的 bin 文件夹 Microsoft.Practices.EnterpriseLibrary.Logging.dll (v6.0.1304.0) Microsoft.Practices 中存在日志记录和通用 DLL。 EnterpriseLibrary.Common.dll (v6.0.1304.0)

{“为 loggingConfiguration 创建配置节处理程序时发生错误:无法加载文件或程序集 'Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。系统找不到指定的文件。

注意:如果我从控制台 (EXE) 应用程序调用 BootStrapper.Run(),则记录器外观初始化成功。但是,当我从启用 COM-Interop 的 C# DLL 调用相同的代码时,出现上述错误。

尝试初始化 LogWriterFactory 时出现上述异常(try 块中的第 3 行)

public LoggingService()
{
        try
        {
            var appConfig = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
            IConfigurationSource configurationSource = new FileConfigurationSource(appConfig.FilePath);
            var logWriterFactory = new LogWriterFactory(configurationSource);
            Logger.SetLogWriter(logWriterFactory.Create());
        }
        catch(Exception exception)
        {
            Console.Write(exception.Message);  
        }
}

我在这里错过了什么吗?

运行 fusion logger 后,我得到以下日志:

=== 预绑定状态信息 ===

LOG:DisplayName = Microsoft.Practices.EnterpriseLibrary.Logging,Culture=neutral,PublicKeyToken=31bf3856ad364e35(部分) WRN:为程序集提供了部分绑定信息:WRN:程序集名称:Microsoft.Practices.EnterpriseLibrary.Logging,Culture=neutral, PublicKeyToken=31bf3856ad364e35 | 域 ID:1 警告:仅提供程序集显示名称的一部分时会发生部分绑定。警告:这可能会导致活页夹加载错误的程序集。WRN:建议为程序集提供完全指定的文本标识,WRN:由简单名称、版本、区域性和公钥标记组成。

=== LOG:此绑定在默认加载上下文中启动。日志:未找到应用程序配置文件。LOG:使用主机配置文件:LOG:使用来自 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 的机器配置文件。日志:此时未将策略应用于引用(私有、自定义、部分或基于位置的程序集绑定)。

RJN

使用 Fusion 日志查看器,我发现存在一些问题:

1) 我的 App.config 文件缺少标头 (app.config) 中企业日志 dll 的版本信息。添加版本信息后,错误消息消失了。

2) 然后,我遇到了 DLL 地狱问题。COM DLL 开始从 GAC 和 EXE 位置(但不在程序集位置)查找其依赖项,因此无法启动日志记录 DLL。

我选择将企业库日志 DLL 复制到 EXE 中并修复了该问题。

非常感谢 @rene 和 @Hans,他们在这里真的帮助了我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法加载文件或程序集'Microsoft.Practices.EnterpriseLibrary.Caching

来自分类Dev

无法加载文件或程序集Microsoft.Practices.EnterpriseLibrary.Configuration

来自分类Dev

EnterpriseLibrary 6错误:无法访问已处置的对象(对象名称:'Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter')

来自分类Dev

Microsoft.Practices.EnterpriseLibrary的替代品。*

来自分类Dev

无法加载文件或程序集“ Microsoft.Practices.Unity”

来自分类Dev

MVC | MVC中的Microsoft.Practices.EnterpriseLibrary.common错误

来自分类Dev

Microsoft.Practices.EnterpriseLibrary.Data中的ODBC方法

来自分类Dev

如何解决“无法加载文件或程序集'Microsoft.Practices.Prism'”的错误?

来自分类Dev

无法加载文件或程序集“ Microsoft.Framework.Logging.ILoggerFactory”或其依赖项之一

来自分类Dev

无法加载文件或程序集Microsoft.Extensions.Logging.Abstractions

来自分类Dev

无法加载文件或程序集'Microsoft.Extensions.Logging.Abstractions

来自分类Dev

在未引用的程序集中定义了“ Microsoft.Practices.EnterpriseLibrary.Caching.Cache”

来自分类Dev

Microsoft.Practices.EnterpriseLibrary.Data.DLL,但未在用户代码中处理

来自分类Dev

Azure服务总线QueueClient RetryPolicy与Microsoft.Practices.EnterpriseLibrary.WindowsAzure.TransientFaultHandling.RetryPolicy

来自分类Dev

FileLoadException:无法加载文件或程序集'Microsoft.Practices.ObjectBuilder,版本= 1.0.51205.0,区域性=中性,PublicKeyToken =空'

来自分类Dev

错误:“ Microsoft.Practices.EnterpriseLibrary.Data.Database.DbProviderFactory.get”:无法显式调用运算符或访问器

来自分类Dev

无法打开源“ Microsoft.Practices.EnterpriseLibrary.Data”的日志。读/写事件日志时,您可能没有写访问权限

来自分类Dev

C#EnterpriseLibrary无法获取输出参数

来自分类Dev

无法加载文件或程序集“ Microsoft.SqlServer.BatchParser”

来自分类Dev

无法加载文件或程序集Microsoft.ServiceHosting.Tools

来自分类Dev

无法加载文件或程序集Microsoft.CodeAnalysis

来自分类Dev

无法加载文件或程序集Microsoft.Kinect.Tools

来自分类Dev

无法加载文件或程序集'Microsoft.SqlServer.DTSRuntimeWrap

来自分类Dev

无法加载文件或程序集Microsoft.SqlServer.TransactSql

来自分类Dev

无法加载文件或程序集'Microsoft.Data.SqlClient

来自分类Dev

无法加载文件或程序集Microsoft.SqlServer.BatchParser?

来自分类Dev

无法加载文件或程序集'Microsoft.Xrm.Client

来自分类Dev

无法加载文件或程序集“ Microsoft.SqlServer.BatchParser”

来自分类Dev

无法加载文件或程序集'Microsoft.SqlServer.DTSRuntimeWrap

Related 相关文章

  1. 1

    无法加载文件或程序集'Microsoft.Practices.EnterpriseLibrary.Caching

  2. 2

    无法加载文件或程序集Microsoft.Practices.EnterpriseLibrary.Configuration

  3. 3

    EnterpriseLibrary 6错误:无法访问已处置的对象(对象名称:'Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter')

  4. 4

    Microsoft.Practices.EnterpriseLibrary的替代品。*

  5. 5

    无法加载文件或程序集“ Microsoft.Practices.Unity”

  6. 6

    MVC | MVC中的Microsoft.Practices.EnterpriseLibrary.common错误

  7. 7

    Microsoft.Practices.EnterpriseLibrary.Data中的ODBC方法

  8. 8

    如何解决“无法加载文件或程序集'Microsoft.Practices.Prism'”的错误?

  9. 9

    无法加载文件或程序集“ Microsoft.Framework.Logging.ILoggerFactory”或其依赖项之一

  10. 10

    无法加载文件或程序集Microsoft.Extensions.Logging.Abstractions

  11. 11

    无法加载文件或程序集'Microsoft.Extensions.Logging.Abstractions

  12. 12

    在未引用的程序集中定义了“ Microsoft.Practices.EnterpriseLibrary.Caching.Cache”

  13. 13

    Microsoft.Practices.EnterpriseLibrary.Data.DLL,但未在用户代码中处理

  14. 14

    Azure服务总线QueueClient RetryPolicy与Microsoft.Practices.EnterpriseLibrary.WindowsAzure.TransientFaultHandling.RetryPolicy

  15. 15

    FileLoadException:无法加载文件或程序集'Microsoft.Practices.ObjectBuilder,版本= 1.0.51205.0,区域性=中性,PublicKeyToken =空'

  16. 16

    错误:“ Microsoft.Practices.EnterpriseLibrary.Data.Database.DbProviderFactory.get”:无法显式调用运算符或访问器

  17. 17

    无法打开源“ Microsoft.Practices.EnterpriseLibrary.Data”的日志。读/写事件日志时,您可能没有写访问权限

  18. 18

    C#EnterpriseLibrary无法获取输出参数

  19. 19

    无法加载文件或程序集“ Microsoft.SqlServer.BatchParser”

  20. 20

    无法加载文件或程序集Microsoft.ServiceHosting.Tools

  21. 21

    无法加载文件或程序集Microsoft.CodeAnalysis

  22. 22

    无法加载文件或程序集Microsoft.Kinect.Tools

  23. 23

    无法加载文件或程序集'Microsoft.SqlServer.DTSRuntimeWrap

  24. 24

    无法加载文件或程序集Microsoft.SqlServer.TransactSql

  25. 25

    无法加载文件或程序集'Microsoft.Data.SqlClient

  26. 26

    无法加载文件或程序集Microsoft.SqlServer.BatchParser?

  27. 27

    无法加载文件或程序集'Microsoft.Xrm.Client

  28. 28

    无法加载文件或程序集“ Microsoft.SqlServer.BatchParser”

  29. 29

    无法加载文件或程序集'Microsoft.SqlServer.DTSRuntimeWrap

热门标签

归档