在.net中加载dll的一种错误问题原因及处理
生活随笔
收集整理的這篇文章主要介紹了
在.net中加载dll的一种错误问题原因及处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題
在一個組件架構的應用程序中,程序啟動時出現了一個錯誤。錯誤提示如下:
// List 1=== 預綁定狀態信息 === 日志: DisplayName = SimpleComponent, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null(Fully-specified) 日志: Appbase = file:///D:/thirdparty/ThirdPartyApp/ThirdPartyApp/bin/Debug/ 日志: 初始 PrivatePath = NULL 調用程序集: (Unknown)。 === 日志: 此綁定從 default 加載上下文開始。 日志: 正在使用應用程序配置文件: D:\thirdparty\ThirdPartyApp\ThirdPartyApp\bin\Debug\ThirdPartyServicePlatformApp.exe.Config 日志: 使用主機配置文件: 日志: 使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 的計算機配置文件。 日志: 此時沒有為引用應用策略(私有、自定義、分部或基于位置的程序集綁定)。 日志: 相同的綁定已出現過,因 hr = 0x80070002 而失敗。問題根源
這個應用是組件架構的應用,需要將開發的組件放到應用下的相應的Components目錄;而且在框架代碼中,在引用設置中,添加了SimpleComponent庫的引用,
而且使用了類型硬編碼創建對象。
這里2個問題:
1. 執行文件的當前目錄下,并沒有SimpleComponent庫文件,所以找不到該文件。執行時會出錯,如上面的異常情況。
2. 作為組件類框架,不能硬依賴,不需要再引用中添加該庫。
3. 硬編碼產生了硬依賴。不應該硬編碼來創建對象。如List 2中的代碼,硬編碼導致硬依賴了。
解決
去除硬依賴,已經硬編碼。如DP中的要求,針對接口編程, 而不是針對實現編程。
總結
以上是生活随笔為你收集整理的在.net中加载dll的一种错误问题原因及处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天起!暴雪游戏正式开放退款 截止日期6
- 下一篇: Git提交branch到remote