2013-04-05 49 views
4

我試圖建立一個在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#經驗的人,這意味着沒有人能夠幫助我。我也花了一些時間試圖在網上查找解決方案,但是我在這個領域缺乏經驗使我很難找到我能理解的答案。

任何幫助,將不勝感激!

+0

您是否引用了任何其他組件,該組件反過來引用先前加載的stdole,並在本地複製stdole時採用系統版本?你可以嘗試使用systinternals工具(FileMon)來分析stdole的加載位置,這可能會有所幫助。 – Sascha 2013-04-12 18:49:44

+0

@Sascha不,事實上我試圖用只有stdole引用的項目來創建一個項目,它仍然給了我同樣的錯誤。我將嘗試「卸載」/刪除stdole並「重新安裝」它以查看此問題是否仍然存在。 – 2013-04-15 12:41:02

+0

只有適用於我的解決方案是刪除引用並讀取它。這個問題最終會回來,但似乎只有當我分支代碼並從源代碼控制中將其拉回時。 – 2014-06-25 14:55:52

回答

2

可以直接添加參考由地址例如爲file:

C:\ Windows \組件\ GAC \ stdole \ 7.0.3300.0__b03f5f7f11d50a3a \ stdole.dll

不從GAC(註冊組件)

+0

這最終爲我解決了它。 Visual Studio告訴我它無法在某個位置找到該文件,所以我去添加引用>瀏覽>從它抱怨的位置選擇了stdole。 – 2014-07-14 21:55:40

相關問題