2016-10-10 1 views
0

zurückkehren Wenn ich diese Zeile Code unten auf verschiedenen Computern laufen dann ich unterschiedliche Ergebnisse erhalten:Warum CultureInfo.GetCultures (CultureTypes.SpecificCultures) verschiedene Sätze von Kulturen auf verschiedenen Computern

int cultureCount = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Count(); 

Unter Windows 10 mit. NET 4.0 cultureCount = 535

Auf einem anderen Windows 10 mit .NET 4.0 cultureCount = 554

auf Windows 7 mit .NET 4.0 cultureCount = 210

Gibt es einen Grund, dass ich unterschiedliche Ergebnisse auf verschiedenen Computern bekomme?

Gibt es einen Standard minimalen Satz von Kulturen, die garantiert auf allen Computern vorhanden ist?

+2

.NET stellt auch vom Betriebssystem unterstützte Kulturen zur Verfügung. Eine ständig wachsende Zahl. Die Win10-Build-Nummer zählt, es gab bisher 3. Nichts, worüber man sich jemals ärgern sollte, diese Ergänzungen sind ziemlich unklar. –

+0

@HansPassant danke für die Info. Wenn ich also alle Kulturen auf einem Windows XP-Computer habe, sollte dieser Satz immer für jeden Computer mit XP oder neuer verfügbar sein? – tjsmith

Antwort

1

Nach diesem Link von MSDN: https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.110).aspx

Denken Sie daran, dass die Kultur Namen und Identifikatoren nur eine Teilmenge der Kulturen darstellen, die auf einem bestimmten Computer gefunden werden können. Windows-Versionen oder Service Packs können die verfügbaren Kulturen ändern.

Der Grund für unterschiedliche Kulturen sind die Unterschiede in Windows oder Service Packs.

Allerdings habe ich keinen Microsoft-Link gefunden, der darauf hindeutet, dass ein Minimum an Kulturen existiert. Aus meiner Sicht enthält eine spätere Version von Windows ältere Kulturen.

Meine Lösung ist es, auf ältere Versionen von Windows zu überprüfen und sicherzustellen, dass die Kultur dort existiert. Wenn nicht, werde ich eine benutzerdefinierte Kultur für die Rückwärtsunterstützung erstellen.

Verwandte Themen