Assembly.Load()不能加载程序集的问题
會出現(xiàn)“未能加載文件或程序集“Com.SQLServerDAL”或它的某一個依賴項。系統(tǒng)找不到指定的文件”的情況。就是無法找到該程序集,主要是沒理解它運行的機制,其實如果
Assembly.Load(path).CreateInstance(className);
寫成
Assembly.Load(“Com.SQLServerDAL.dll").CreateInstance(className);
這找的不是一個名稱空間,而是在bin里的一個dll文件。而項目SQLServerDAL默認生成的dll文件的名字是SQLServerDAL.dll,于是就會出現(xiàn)以上的錯誤。那么只要在該項目屬性里把程序集名稱改成“Com.SQLServerDAL“就行了。
?===================================================================================================
錯誤描述:未能加載文件或程序集“SQLServerDAL”或它的某一個依賴項。文件不存在。?
原因:1.在利用分層設計思想開發(fā)時,關于動態(tài)反射的理解不清晰。?
?????? 2.由于開發(fā)工具的bug問題,造成未能加載程序集。?
解決方案:?
1.反射編程要求在網(wǎng)站的Bin文件夾中有已經(jīng)編譯好的.DLL文件(即保持DLL文件存在),并且保持名稱和編譯前類庫的名稱一致??煞Q:添加引用性。?
2.查看網(wǎng)站中的項目(類庫)屬性,確認是否默認命名空間和程序集名稱以及Bin文件夾下的DLL文件名稱是否一致,不一致則會出現(xiàn)未能加載文件或者程序集,所以的修改項目的屬性??煞Q:名稱一致性。?
3.建議在編程的時在創(chuàng)建類庫的時候?qū)懮舷到y(tǒng)名稱+項目名稱,能夠有效的避免Bug產(chǎn)出。即:SystemName.Model或者SystemName.IDAL。eg:BBS.Model??煞Q:名稱完整性。
?
最主要:path的DLL需要在網(wǎng)站W(wǎng)EB的BIN目錄中
轉載于:https://www.cnblogs.com/hejunrex/archive/2011/11/27/2264966.html
總結
以上是生活随笔為你收集整理的Assembly.Load()不能加载程序集的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中使用SQLite数据库
- 下一篇: 《Android学习指南》目录