我試圖建立一個在Visual Studio 2010中的多個項目組成的解決方案,但其中一個項目是給我一個奇怪的錯誤,當我編譯:stdole.dll已經從不同的位置加載?
Cannot load referenced assembly: C:\Windows\assembly\GAC\stdole\7.0.3300.0_b03f5f711d50a3a\stdole.dll
System.IO.FileLoadException - API restriction: The assembly 'file:\\\<same as above>' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain.
起初,我以爲我會需要刪除這個stdole.dll參考,所以我刪除它。但是,刪除之後,我收到以下錯誤,而不是:
類型或命名空間「stdole」找不到(?using指令或程序集引用是否缺少 )
再次添加參考返回第一個錯誤。
我明白爲什麼我會得到最後一個錯誤,但我不明白爲什麼我會得到第一個錯誤。我在.NET方面相當新,並且是我現任公司中唯一擁有C#經驗的人,這意味着沒有人能夠幫助我。我也花了一些時間試圖在網上查找解決方案,但是我在這個領域缺乏經驗使我很難找到我能理解的答案。
任何幫助,將不勝感激!
您是否引用了任何其他組件,該組件反過來引用先前加載的stdole,並在本地複製stdole時採用系統版本?你可以嘗試使用systinternals工具(FileMon)來分析stdole的加載位置,這可能會有所幫助。 – Sascha 2013-04-12 18:49:44
@Sascha不,事實上我試圖用只有stdole引用的項目來創建一個項目,它仍然給了我同樣的錯誤。我將嘗試「卸載」/刪除stdole並「重新安裝」它以查看此問題是否仍然存在。 – 2013-04-15 12:41:02
只有適用於我的解決方案是刪除引用並讀取它。這個問題最終會回來,但似乎只有當我分支代碼並從源代碼控制中將其拉回時。 – 2014-06-25 14:55:52