Belirli bir .NET Framework 2.0 yazılım güncelleştirmesinin yüklü olduğu bir bilgisayarda bir uygulama çalıştırdığınızda veya bir Web sitesine erişmeye çalıştığınızda hata iletisi: "'Kültür' kültür adı desteklenmiyor"

Makale çevirileri Makale çevirileri
Makale numarası: 939949 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Belirtiler

Microsoft Windows Server 2003'ün yüklü olduğu bir bilgisayara, aşağıdaki Microsoft Bilgi Bankası makalesinde açıklanan Microsoft .NET Framework 2.0 yazılım güncelleştirmesini yüklersiniz:
928365 Windows Server 2003, Windows XP ve Windows 2000 için .NET Framework 2.0 güvenlik güncelleştirmesi: 10 Temmuz 2007'nin açıklaması
Bilgisayarda bir uygulama çalıştırdığınızda veya bir Web sitesine erişmeye çalıştığınızda, aşağıdaki hata iletisini alabilirsiniz:
[System.ArgumentException] : 'Kültür' kültür adı aşağıdaki 13 kültür için desteklenmiyor: en-CB az-AZ-Latn uz-UZ-Latn sr-SP-Latn az-AZ-Cyrl uz-UZ-Cyrl sr-SP-Cyrl bs-BA-Cyrl sr-BA-Latn sr-BA-Cyrl bs-BA-Latn iu-CA-Latn div-MV
Ayrıca, bir uygulamanın eski kültür adı biçimini kullanan kaynakları varsa ve kullanıcının kültür adı yeni kültür adı biçimini kullanıyorsa, uygulama eski kültür adı biçimi için kaynakları bulamaz.

Neden

"Belirtiler" bölümünde açıklanan yazılım güncelleştirmesi .NET Framework 2.0 için bir toplu güncelleştirmedir. Bu güncelleştirme, kültür adlarında değişiklikler içerir. Yeni kültür adları IETF standartları (RFC 4646 ve RFC 4647) sözdizimine uygundur. Kültür adlarındaki değişiklikler, her yerel ayarın tutarlı bir tanımlayıcısı olmasını sağlayarak birlikte çalışabilirliği geliştirir.

Eski kültür adları yeni kültür adlarıyla şu şekilde eşleştirilir:
Bu tabloyu kapaBu tabloyu aç
Eski kültür adı Yeni kültür adı
az-AZ-Latn az-Latn-AZ
uz-UZ-Latn uz-Latn-UZ
sr-SP-Latn sr-Latn-CS
az-AZ-Cyrl az-Cyrl-AZ
uz-UZ-Cyrl uz-Cyrl-UZ
sr-SP-Cyrl sr-Cyrl-CS
bs-BA-Cyrl bs-Cyrl-BA
sr-BA-Latn sr-Latn-BA
sr-BA-Cyrl sr-Cyrl-BA
bs-BA-Latn bs-Latn-BA
iu-CA-Latn iu-Latn-CA
div-MV dv-MV
en-CB en-029

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için, eski kültür adlarını kullanan yeni yerel ayarlardan özel kültürler oluşturun. Bunu yapmak için aşağıdaki adımları izleyin.

Not Burada sağlanan örnek programı kullanmak için .NET Framework 2.0 yüklü olmalıdır.
  1. Özel bir kültür geliştirmek için kullanılabilecek bir uygulama oluşturun. Bunu yapmak için aşağıdaki adımları izleyin:
    1. Başlat'ı ve sonra Çalıştır'ı tıklatın, notepad yazın ve Tamam'ı tıklatın.
    2. Aşağıdaki kodu Not Defteri'ne yapıştırın.
      using System;
      using System.Globalization;
      
      public class MakeCultures
      {
          static void Main()
          {
              CreateCopyCulture("en-029", "en-CB");
              CreateCopyCulture("az-Latn-AZ", "az-AZ-Latn");
              CreateCopyCulture("uz-Latn-UZ", "uz-UZ-Latn");
              CreateCopyCulture("sr-Latn-CS", "sr-SP-Latn");
              CreateCopyCulture("az-Cyrl-AZ", "az-AZ-Cyrl");
              CreateCopyCulture("uz-Cyrl-UZ", "uz-UZ-Cyrl");
              CreateCopyCulture("sr-Cyrl-CS", "sr-SP-Cyrl");
              CreateCopyCulture("bs-Cyrl-BA", "bs-BA-Cyrl");
              CreateCopyCulture("sr-Latn-BA", "sr-BA-Latn");
              CreateCopyCulture("sr-Cyrl-BA", "sr-BA-Cyrl");
              CreateCopyCulture("bs-Latn-BA", "bs-BA-Latn");
              CreateCopyCulture("iu-Latn-CA", "iu-CA-Latn");
              CreateCopyCulture("dv-MV", "div-MV");
      
               
          }
      
          static void CreateCopyCulture(string strRealName, string strAliasName)
          {
              try
              {
                  // Eski ada dayalı yeni bir kültür oluşturun
                  CultureAndRegionInfoBuilder carib = new CultureAndRegionInfoBuilder(
                      strAliasName, CultureAndRegionModifiers.None);
      
                  carib.LoadDataFromCultureInfo(new CultureInfo(strRealName));
                  carib.LoadDataFromRegionInfo(new RegionInfo(strRealName));
      
                  carib.Register();
      
                  // Varolan kültürün ana düzeyini eski kültür olarak değiştirin
                  carib = new CultureAndRegionInfoBuilder(strRealName, 
                                  CultureAndRegionModifiers.Replacement);
      
                  carib.Parent = new CultureInfo(strAliasName);
                  carib.Register();
      
                  // Kaydettirildiklerini doğrulayın...
                  CultureInfo ci = new CultureInfo(strAliasName);
                  Console.WriteLine("Aliased culture {0} has parent of {1}.", ci, ci.Parent);
                  ci = new CultureInfo(strRealName);
                  Console.WriteLine("\"Real\" culture {0} has parent of {1}.", ci, ci.Parent);
              }
              catch (Exception e)
              {
                  Console.WriteLine("Unable to create custom culture " + strAliasName);
                  Console.WriteLine(e);
              }
          }
      }
      
      Not Bu örnek program, yeni kültürlerin ana düzeylerini eski kültürler olarak ayarlar. Eski kültürlerin ana düzeyleri aynı zamanda yeni kültürler olamaz, çünkü bu durum kaynak araması sırasında sonsuz yinelemeye neden olur.
    3. Dosya menüsünde, Farklı Kaydet'i tıklatın.
    4. Farklı Kaydet iletişim kutusunda Belgelerim'i tıklatın, Dosya adı kutusuna MakeCultures.cs yazın, Kayıt türü kutusunda Tüm Dosyalar'ı tıklatın ve sonra da Kaydet'i tıklatın.
    5. Not Defteri'nden çıkın.
  2. Özel bir kültür geliştirmek üzere adım 1'de oluşturduğunuz uygulamayı çalıştırın. Bunu yapmak için aşağıdaki adımları izleyin:
    1. Başlat'ı tıklatın, Çalıştır'ı tıklatın, cmd yazın ve Tamam'ı tıklatın.
    2. cd "Belgelerim" yazın ve ENTER tuşuna basın
    3. %windir%\Microsoft.NET\Framework\v2.0.50727\csc /r: sysglobl.dll MakeCultures.cs yazın ve ENTER tuşuna basın.
    4. Kültürü geliştirmek üzere programı çalıştırmak için MakeCultures.exe yazın.

Durum

Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Özellikler

Makale numarası: 939949 - Last Review: 3 Aralık 2007 Pazartesi - Gözden geçirme: 1.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft .NET Framework 2.0
Anahtar Kelimeler: 
kbbug kbfix kbsecvulnerability kbqfe kbsecurity kbsecbulletin kbpubtypekc kbexpertiseadvanced KB939949

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com