未能加載文件或程序集——Microsoft.Practices.Prism.UnityExtensions(loyung)


這些天在用Microsoft的Prims框架整一個公司項目,剛把Bootstrapper,Module建好要調試直接跳出個錯誤:
消息: Silverlight 應用程序中未處理的錯誤
代碼: 4004   
類別: ManagedRuntimeError      
消息: System.IO.FileNotFoundException: 未能加載文件或程序集“Microsoft.Practices.Prism.UnityExtensions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一個依賴項。系統找不到指定的文件。
文件名:“Microsoft.Practices.Prism.UnityExtensions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”
   位於 TimberPX.App.Application_Startup(Object sender, StartupEventArgs e)
   位於 MS.Internal.CoreInvokeHandler.InvokeEventHandler(UInt32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
   位於 MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags)   

當時就郁悶了,一直都正在用的Microsoft.Practices.Prism.dll

              Microsoft.Practices.Prism.UnityExtensions.dll

              Microsoft.Practices.ServiceLocation.dll

              Microsoft.Practices.Unity.Silverlight.dll

怎么突然就不能加載了呢?

立馬就想到了度娘和谷哥。百度后說是神馬文件字體丟失,但這個真心的不懂,並且我之前並沒有對字體做過操作,馬上排除。之后又一同仁兒索性把錯誤翻譯之后說好理解,但是不管怎么翻譯仍舊看不出個所以然來。后來看到有很多的4004錯誤,除了加載文件和版本不同外后邊的Culture,PublicKeyToken參數完全相同,於是乎被錯誤的理解為版本問題或者是Runtime出問題,有了重裝FormWork的沖動,但出於效率考慮還是忍忍吧!

后來在CodePlex上看到了幾篇過於不能加載Microsoft.Practices.Prism.UnityExtensions.dll的帖子,可能之后大家遇到的問題未必只是這一種,遇到問題也可以參考一下這里
。里邊有對prims的很多介紹,但是看了這么多似乎跟我遇到的都有些扯不上關系。

快要下班了,這不能一天過來調個錯還沒調好就回去,這是不是有點……大家懂得!之后就拋下了度娘和谷哥兩位大神,自力更生奮斗下去。經過細細的排查發現,這問題不是直接因為Microsoft.Practices.Prism.UnityExtensions.dll所導致的,這樣就好很多起碼在prims這一塊沒有問題,就開始繼續找終於自最后發現時缺失System.Windows.Controls,終於看到了希望!不過后來我在之前的項目中看到沒有這個明明空間的引用也是可以加載的,另外默認情況下System.Windows.Controls是不被引用的。。

再啰嗦兩句,但這個是細節關系,不要忘記了。要在引用的命名空間右鍵修改其屬性“復制本地”改為TRUE,否則還是不能解決為題的。直接上圖好了:

——Loyung(OceanEyes)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM