2012-11-11 24 views
7

我有這樣的錯誤如果兩個庫具有完全相同的類,該怎麼辦?

錯誤8型 'System.Threading.Volatile' 存在於兩個 「C:\奧列格\項目\ MBClient \包\ Disruptor.1.1.0 \ LIB \ net40 \原子.dll' 和'c:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5 \ mscorlib.dll'C:\ Oleg \ projects \ MBClient \ MBClient \ CustomIndeces \ CompositeIndex.cs 77 40 MBClient

我不知道該怎麼辦,因爲完全限定的名稱並不能確切地標識出要使用哪個類。如何解決這個問題呢?

回答

7

您可以通過右鍵單擊引用列表中的程序集,將其別名分配給VS中的庫,然後轉到pro perties,並將「別名」屬性設置爲任何你想要的。然後,要使用此程序集中的類型,請在名稱空間的開頭使用extern alias

實施例:

namespace TestApp 
{ 
    extern alias Threading1; 
    using Threading1.System.Threading.Volatile; 
} 

extern alias msdn

6

也許你可以爲命名空間定義alias,例如爲Timer類以下的命名空間

using WinTimer = System.Windows.Forms; 
using ThreadTimer = System.Threading; 

那麼你可以使用它像發現,

WinTimer.Timer _tmr = new WinTimer.Timer(); 
ThreadTimer.Timer _Thrtmr = new ThreadTimer.Timer(); 
+0

我不明白我應該怎麼做我的情況。兩個庫都有'System.Threading.Volatile'類。 – javapowered

+2

這不能解決兩個或多個程序集之間的名稱衝突問題。看到我的答案。 – Siege

相關問題