2012-11-11 18 views
7

Ich habe solche FehlerWas tun, wenn zwei Bibliotheken genau die gleichen Klassen haben?

Fehler 8 Der Typ 'System.Threading.Volatile' in beiden ‚c existiert: \ Oleg \ projects \ MBClient \ packages \ Disruptor.1.1.0 \ lib \ net40 \ Atomic .dll ' und' c: \ Programme (x86) \ Referenz Assemblys \ Microsoft \ Framework.NETFramework \ v4.5 \ mscorlib.dll 'C: \ Oleg \ Projekte \ MBClient \ MBClient \ CustomIndeces \ CompositeIndex.cs 77 40 MBClient

Ich weiß nicht, was zu tun ist, da voll qualifizierter Name nicht genau angibt, welche Klasse zu verwenden ist. Wie man dieses Problem löst?

Antwort

7

Sie können der Bibliothek in VS einen Alias ​​zuweisen, indem Sie mit der rechten Maustaste auf die Assembly in Ihrer Referenzliste klicken und zu pro gehen und setzen Sie die "Alias" -Eigenschaft auf das, was Sie wollen. Um dann Typen aus dieser Assembly zu verwenden, verwenden Sie extern alias am Anfang Ihres Namensraums.

Beispiel:

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

extern alias msdn

2

Sie können einen Alias ​​verwenden, wenn Sie die Bibliothek verwenden.

http://msdn.microsoft.com/en-us/library/sf0df423(VS.80).aspx

+0

Die Informationen in diesem Link geht davon aus, dass die Klassen in zwei unterschiedlichen Namensräumen sind, was hier nicht der Fall ist. –

+0

Entschuldigung, ich dachte, der Link deckte die externe Alias-Deklaration ab. –

6

vielleicht können Sie einen alias für diesen Namensraum, beispielsweise definieren für Timer Klasse auf den folgenden Namespace gefunden wird

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

dann können Sie es wie verwenden,

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

Ich verstehe nicht, was ich in meinem Fall tun soll. Beide Bibliotheken haben die Klasse "System.Threading.Volatile". – javapowered

+2

Dies löst nicht das Problem von Namenskonflikten zwischen zwei oder mehr Baugruppen. Siehe meine Antwort. – Siege

Verwandte Themen