2012-08-17 76 views
0

錯誤DLL我有一個ASP.net 4.0網站使用Telerik控制。最近,不再使用該公司的過去開發人員升級了Telerik控制版。收到「無法加載文件或程序集」 ......「系統找不到指定的文件」只生產

網站本地工作大後,​​我發佈,並將其移動到我的開發環境(以前的網站殲滅,並與整個發佈新的網站取代)它的偉大工程沒有問題。

只要我已發佈的版本移動到生產它的錯誤每一次,使用以下信息(截圖附後):

無法加載文件或程序集「Telerik.Web.Design,版本= 2011.2。 915.40,Culture = neutral,PublicKeyToken = 121fae78165ba3d4'或其依賴項之一。該系統找不到指定的文件。

我知道DLL存在那裏,並且是相同的版本「2011.2.915.40」。我真的難倒了,因爲我已經來回移動了它,出於某種原因,它只有一次出現錯誤時纔會出現錯誤?

Error Screenshot

Error Screenshot

+0

Telerik.Web.Design是否有其他可能沒有更新的依賴關係? – Alex 2012-08-17 15:13:25

+0

也許GAC中的程序集尚未更新? – MilkyWayJoe 2012-08-17 15:15:08

+2

我使用Telerik,將assembleys/.DLL放在同一個文件夾的Debug或Release文件夾中,或者您可以將GAC裝配。 – MethodMan 2012-08-17 15:16:50

回答

3

所以我覺得真的很愚蠢,但我不得不在Telerik.Web.Design.dll添加到PROD上的垃圾桶。奇怪的部分是DLL並不是這個項目的一部分,在本地和DEV工作得很好。

我在我的電腦上做了一個搜索,找到它然後添加它。不知道爲什麼本地和DEV工作沒有它,但它現在修復,我把它添加到BIN。

Telerik.Web.Design.dll

+1

由於某些原因,Telerik升級嚮導有時不會將此特定程序集複製到項目的Bin文件夾中。在你的本地機器上,所有東西都能正常工作,但是當你嘗試部署時,它會中斷。在手邊複製它通常會有訣竅。 – 2013-03-19 17:07:31

1

嘗試找到其Telerik的裝配您的網站試圖加載,它仍可以達到高達一些舊版本的ASP.NET中的臨時文件。也發生在我身上。使用這些

var appDomain = AppDomain.CurrentDomain; 
appDomain.AssemblyLoad += AssemblyLoadEventHandler; 

LogLoadedAssemblies(); 

爲了調試的問題是這樣的,我設置AppDoman.AssemblyLoad處理器在我Global.asax.cs

private void LogLoadedAssemblies() 
{ 
    var log = LogManager.GetLogger("AssemblyLoadHandler"); 
    foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) 
    { 
     log.Info("Already loaded: " + assembly.FullName + " (" + (assembly.IsDynamic ? "dynamic" : assembly.Location) + ")"); 
    } 
} 

static void AssemblyLoadEventHandler(object sender, AssemblyLoadEventArgs args) 
{ 
    LogManager.GetLogger("AssemblyLoadHandler").Info("Assembly loaded: " + args.LoadedAssembly.FullName + " (" + (args.LoadedAssembly.IsDynamic ? "dynamic" : args.LoadedAssembly.Location) + ")"); 
} 

我使用log4net的記錄,但我相信你可以很容易地適應這個代碼到您的記錄基礎設施

0

好像我encountered.Try把所有需要的DLL在bin文件夾在生產同樣的問題。

相關問題