簡體   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