繁体   English   中英

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

[英]Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Logging

我有启用了COM-Interop的C#库(DLL),在其中配置了App.config以启用企业日志记录。 但是,一旦从COM dll调用了BootStrapper.Run,​​尽管我的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块中的第三行)

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后,我得到以下日志:

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

日志:DisplayName = Microsoft.Practices.EnterpriseLibrary.Logging,文化=中性,PublicKeyToken = 31bf3856ad364e35(部分)WRN:为程序集提供了部分绑定信息:WRN:程序集名称:Microsoft.Practices.EnterpriseLibrary.Logging,Culture = neutral, PublicKeyToken = 31bf3856ad364e35 | 域ID:1 WRN:当仅提供部分程序集显示名称时,将发生部分绑定。 WRN:这可能导致活页夹加载不正确的组件。 WRN:建议为程序集提供完全指定的文本标识,WRN:由简单名称,版本,区域性和公共密钥令牌组成。

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

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

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

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

我选择将企业库记录DLL复制到EXE并解决了该问题。

非常感谢@rene和@Hans,他们在这里确实为我提供了帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM