C# 三层级架构问题之 能加载文件或程序集或它的某一个依赖项。系统找不到指定的文件
用抽象工廠加反射來(lái)確定調(diào)用哪一個(gè)D層的時(shí)候,出現(xiàn)了錯(cuò)誤“未能加載文件或程序集或它的某一個(gè)依賴項(xiàng)。系統(tǒng)找不到指定的文件”
如下圖所示:
?
出現(xiàn)這種錯(cuò)誤有兩種情況:
1.??????DLL的文件名寫錯(cuò)了
2.??????DLL不存在
我檢查了自己的DLL命名,確實(shí)沒(méi)問(wèn)題。而且我的DLL也是存在的。那么到底是哪里錯(cuò)了呢?
原來(lái)是因?yàn)槲襏I層里面沒(méi)有這個(gè)D層的DLL。通過(guò)參考社和師哥的博客知道反射一切是以UI層的bin文件夾下的DLL名稱為中心。.net的默認(rèn)機(jī)制就是從U層的bin里面去找對(duì)應(yīng)的DLL,我的生成在了D層的bin目錄下,當(dāng)然找不到了。這個(gè)問(wèn)題在編譯的時(shí)候是不會(huì)報(bào)錯(cuò)的,在運(yùn)行的時(shí)候就會(huì)顯現(xiàn)出來(lái)。
解決辦法就是修改DAL的生成目錄為UI/bin里面就可以了
查看UI下
將MySqlDAL的dll輸出到UI下
在該類庫(kù)項(xiàng)目右鍵,屬性即可:
最后運(yùn)行,OK!
總結(jié)
以上是生活随笔為你收集整理的C# 三层级架构问题之 能加载文件或程序集或它的某一个依赖项。系统找不到指定的文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Ajax后端极简笔记
- 下一篇: C#连接MySQL时出现Unable t