2013-08-27 69 views
1

當我運行單元測試序列化到一個XML文件,我不斷收到錯誤消息:Visual Studio無法加載文件或程序集;也許緩存?

無法加載文件或組件 「Company.Fin.Bank.Common.XmlSerializers.dll,版本= 1.0。 0.0, Culture = neutral,PublicKeyToken = null'或其依賴項之一。 系統找不到指定的文件。

我想Company.Fin.Bank.Common.XmlSerializers.dll可能在緩存的某處,但它不可能找到這個DLL,即使我不需要該DLL。我想刪除它。但我在哪裏可以找到它?它可能在緩存中?如果是的話我怎麼能從VS清理緩存?這個問題對我來說很新。

奇怪的是,我用另一臺筆記本電腦(贏得7)來運行單元測試,沒有錯誤信息,我得到了 - 它的工作。但是當我用我自己的筆記本電腦(贏8),我不斷收到錯誤消息。我不知道爲什麼。

我希望能找到您的解決方案。你的幫助意味着很多。謝謝!!!

+0

通過cache您是指GAC?如果是這樣,請在C:\ Windows \ assembly或C:\ Windows \ Microsoft.NET \ assembly中查看,如果您使用的是.NET 4.0或更高版本。 –

+0

如果展開應用程序的References文件夾,那裏是否有一個有黃色三角形的裝配體?這意味着它無法解決它。有可能是其他筆記本電腦有這個DLL,你的沒有。找到它,將其複製並添加爲待解決的參考。線索出現在錯誤消息中:) –

+0

您的項目中是否可能存在另一個將該.dll作爲依賴項的庫? – squillman

回答

0

即使我不需要該DLL

Visual Studio中通常會刪除不需要的DLL。通常這是由依賴關係引起的(這很難追蹤)。

我想將其刪除。

在解決方案資源管理器中籤入項目的參考資料。如果它們中的任何一個有黃色三角形,則表示無法找到它們(如果您實際上沒有使用該參考項目,該項目仍可編譯並運行)。

它可能在緩存中嗎?

正如Daniel Kelley提到的C:\Windows\assemblyC:\Windows\Microsoft.NET\assembly是全局程序集緩存所在的位置。如果不在那裏檢查參考的提示路徑(它將顯示在屬性中)。

祝你好運找到你的參考,請記住,你不僅需要實際的DLL,而且在大多數情況下需要使用所有的參考。像DotPeek這樣的反編譯器也是有用的,如果你需要更謹慎的方式來查看引用。 /反序列化你的類(性能 原因)

3

即組件是由所述框架(XMLSerializer的)

在.NET實現產生dynamically,XmlSerializer的生成臨時 組件用於序列化。

此外,這可能是normalbehavior - 它阻止您的應用程序運行?

+0

+1。鏈接的問題也有辦法生成這種類型的程序集(如果由於某些原因必須修正異常 - 即由於臨時文件的某些權限而無法動態生成程序集) –

相關問題