1. 程式人生 > >Assembly.Load()不能載入程式集的問題

Assembly.Load()不能載入程式集的問題

在程式設計中,使用反射(IoC)是一個很好的架構。在.Net中,System.Reflection名稱空間提供了對反射的支援。然而,很多朋友在使用Assembly.Load()方法時, 卻不能正確裝載程式集。比如,很多朋友在模仿PetShop的框架時,使用這樣的呼叫方式:

string assemblyName = ConfigurationManager.AppSettings["webDAL"];
string constructor = ConfigurationManager.AppSettings["constructorClass"];
 
return (IExample)Assembly.Load(assemblyName).CreateInstance(constructor, 
false);

然而,在Assembly.Load()方法處,經常出現未能載入程式集的錯誤:

未能載入檔案或程式集“webDAL”或它的某一個依賴項。系統找不到指定的檔案

Assembly.Load(assemblyName)實際上是在assemblyName.dll檔案中查詢類custructor的定義。例如,Assembly.Load("PetShop.SQLServerDAL").CreateInstance("PetShop.SQLServerDAL.Cateogry"),就是在PetShop.SQLServerDAL.dll程式集中查詢PetShop.SQLServerDAL.Category類。而在自己定義類庫時,往往忽視了生成的程式集的名稱。

在類庫專案上點選右鍵->屬性,可以設定生成的程式集的檔名。只有正確設定了,才能在Assembly.Load(assemblyName)方法中避免找不到程式集的錯誤。

相關推薦

Assembly.LoadFrom載入程式型別轉換失敗解決方法

為了讓我的wcf模組框架支援自定義通道上下文,對程式碼又進行了一次小型的重構,測試時發現型別轉換的錯誤,最後發現是loadfrom引起的。如果向 loadfrom 上下文中載入了一個程式集,則將啟用 loadfromcontext 託管除錯助手 (mda)。因為預設時載入程式集是在defaul上下文的,所以就

Assembly.Load()不能載入程式的問題

在程式設計中,使用反射(IoC)是一個很好的架構。在.Net中,System.Reflection名稱空間提供了對反射的支援。然而,很多朋友在使用Assembly.Load()方法時, 卻不能正確裝載程式集。比如,很多朋友在模仿PetShop的框架時,使用這樣的呼叫方式:

C# 啟動專案提示不能載入程式

今天在啟動一個專案的時候提示不能載入程式集或其依賴項,而該程式集是經常用到的,排查一個小時後發現,該程式集的平臺目標為x86,而主程式的平臺目標為any cpu。講主程式的平臺目標同樣改為x86即可正常執行。平臺目標所在位置 右鍵專案==>屬性==>生成==>

分析器錯誤資訊: 未能載入程式 app_Web _**** 請確保在訪問該頁之前已經編譯了此程式

這個是asp.net程式在釋出時候選項錯誤導致的問題,就我自己而言,我的網站是在一個虛擬目錄(main)下,但是我是釋出到一個本地目錄下,然後用 這樣來訪問,所以會導致以上問題 網上找到不少人說把bin目錄移動到網站的根目錄也就是http://localhost 所指向的目

執行儲存過程時報“在嘗試載入程式 ID 65645 時 Microsoft .NET Framework 出錯”,解決方案

新庫是直接複製的模板庫 執行儲存過程時報如下錯 訊息 10314,級別 16,狀態 11,過程sp_Sync_CmsArticleToSearchs,第 30 行在嘗試載入程式集 ID 65645 時 Microsoft .NET Framework 出錯。伺服器可能資源

eclipse Project的屬性Deployment Assembly(支配程式

Eclipse中Project的屬性Deployment Assembly(部署程式集)消失了,不存在了,去哪兒了?   可能的原因主要有2個:    1. 該專案不是web專案,所以不存在Deployment Assembly 屬性。在Eclipse

Unity3D熱更新之C#反射載入程式

用C#反射載入程式集的方式可以動態的從assetBundle資源包或其他資源包里加載指令碼到工程中,即便是原工程中不存在的指令碼。 我這裡就用載入本地assetBundle的方式來進行講解了,載入

(已解決)拷貝dll檔案到另一個專案,編譯不報錯,執行報錯“未能載入檔案或程式...”

未能載入檔案或程式集“JUtility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一個依賴項。試圖載入格式不正確的程式。   需要注意該dll生成的目標平臺:右擊專案-生成-目標平臺, 引用這個dll的專案

C#.NET,JAVA,Assembly,Assemblies,微軟,自包含元件,程式,願願。

以上是微軟英文版,在關於Assemblies定義中:Assembly被windows系統當作一個單一安裝元件進行管理,Assembly必須包含它自己所需的所有檔案。我們注意到Assembly這個詞的核心意思是自包含元件,叫自含元件也很好。而不是微軟官方機器翻譯的“程式集”。程式集這個詞很不恰當

C#Assembly程式、裝配件、名稱空間以及型別的關係

關於Assembly、程式集、裝配件的關係   首先有三個概念:Assembly、程式集、裝配件   之前差了好多的帖子,都是在講定義的時候用Assembly,然後又開始講解程式集的理解,話鋒一轉就有開始講裝配件,一直搞不明白如果Assembly就是裝配件的話,那程式

未能載入檔案或程式 System Web Helpers Version 2 0 0 0

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

.net載入失敗的程式重新載入

在.net程式中,程式集是Lazy載入的,只有在用的時候才會去載入,當程式集載入失敗時,會觸發AppDomain.AssemblyResolve的事件,在這個事件中,我們甚至還可以進行補救,從別得地方重新載入程式集。 AppDomain.CurrentDomain.AssemblyResolve 

word外掛無法載入,System.IO.FileLoadException: 未能載入檔案或程式“Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”或

問題 System.Reflection.TargetInvocationException: 呼叫的目標發生了異常。 ---> System.IO.FileLoadException: 未能載入檔案或程式集“Microsoft.Office.Interop.Word, Version=15.0.0.

未能載入檔案或程式 System Drawing Version 4 0 0 0 Culture neutral

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

未能載入檔案或程式“MySql.Web, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或它的某一個依賴項。系

方案一:在mysql的安裝目錄中搜索MySql.Web,找到這個dll後,在專案中引用即可。 方案二:如果不想引用這個dll,可參考下面的 轉自:http://www.cnblogs.com/paluano/p/4969257.html 關

部署IIS時提示未能載入檔案或程式“XXX”或它的某一個依賴項

“/xxxxx”應用程式中的伺服器錯誤。 -------------------------------------------------------------------------------- 未能載入檔案或程式集“xxx”或它的某一個依賴項。試圖載入格式不正確的程式。 說明:

Oracle 未能載入檔案或程式Oracle.DataAccess

原文地址;https://www.cnblogs.com/xuekai-to-sharp/p/3586071.html   關鍵是引用DLL:Oracle.DataAccess.dll DLL檔案的路徑:D:\app\client\Administrator\product\12.2.0\cl

未能載入檔案或程式“System.Web.Http.WebHost, Version=4.0.0.0, Culture=neut

在MVC4專案釋出在IIS出現的問題: 未能載入檔案或程式集“System.Web.Http.WebHost, Version=4.0.0.0, Culture=neut 解決方案是缺少什麼就加會什麼:http://files.cnblogs.com/files/netxiaohui/DLL

未能載入檔案或程式“AspNetPager”或它的某一個依賴項。引數錯誤。 (異常來自 HRESULT:0x80070057 (E_INVALIDARG))

刪掉了系統盤下所有這個資料夾。其實,這些資料夾就是asp.net生成之後的快取資料夾。例如 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files C:\Windows\Microsoft.NET\Framework\

未能載入檔案或程式,PublicKeyToken=“**********”,或它的某一個依賴項。強名稱驗證失敗。

就是這種錯誤。這種錯誤怎麼辦? 以下步驟: (以上圖dll為例) 1、看專案的Debug資料夾下是否有以下三個檔案 2、看專案的.csproj檔案下引用的報錯dll的publickeytoken和版本是否正確 [可能需要使用sn.exe 來檢視 dll的publickey值],我也不知道為什麼v