Ich habe ein .NET 3.5 C# -Projekt, das einen Namespace von hat.Referenz Name Fall ist nicht CLS-kompatibel
Wenn ich eine Assembly namens "Samplenamespace.Utils.Example" zu meinem Projekt, das ich die folgende Warnung erhalten hinzufügen:
Identifier 'Samplenamespace' unterscheiden sich nur in dem Fall ist nicht CLS-kompatibel
Beachten Sie das Kleinbuchstabe 'n' in Samplenamespace
.
Ich verwende im Moment nicht einmal die Referenzbaugruppe in meinem Projekt. Wenn Sie es einfach als Referenz hinzufügen, wird die Warnung ausgegeben.
Warum beschwert sich der Compiler darüber, dass ich in meinen öffentlichen Klassen überhaupt keine Referenzen auf die Assembly veröffentliche?
Problemumgehung?
Dank Ralph, ich verstehe immer noch nicht, warum das wichtig sein sollte, da mein Projekt nichts von der referenzierten Assembly potenziellen VB-Clients aussetzt. Ich abstrahiere den VB-Client effektiv von der zugrunde liegenden Assembly? – user115909
Da VB nicht zwischen Groß- und Kleinschreibung unterscheidet, ist es nicht möglich, zwischen SampleNamespace.A und Samplenamespace.A zu unterscheiden. Daher kann nicht ermittelt werden, welcher Typ aufgerufen werden soll. Um solche Zweideutigkeiten zu vermeiden, kennzeichnet der C# -Compiler dies, so dass Sie nur Typen und Member erstellen können, die von allen ohne Mehrdeutigkeit aufgerufen werden können. – Gishu
Ich denke, es ist ein Blind-Check-and-Flag, es berücksichtigt nicht, wie Sie die Typen tatsächlich verwenden oder freilegen. – Gishu