Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Проблема

На компьютере под управлением Microsoft Windows Server 2003 необходимо установить обновление для Microsoft .NET Framework 2.0, описанное в следующей статье базы знаний Майкрософт:

928365 Описание обновления безопасности для .NET Framework 2.0 для Windows Server 2003, Windows XP, and Windows 2000: 10 июля 2007 г. При запуске приложения или попытке доступа на веб-узел с компьютера может появиться сделдующее сообщение об ошибке:

[System.ArgumentException] : Имя культуры 'Culture' не поддерживается для следующих 13 культур: 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

Кроме того, если приложение обладает источниками, использующими устаревший формат имени культуры, и если имя культуры пользователя использует новый формат имени культуры, приложение не сможет найти источники для старого формата имени культуры.

Причина

Обновление, упоминавшееся в разделе «Проблема», является накопительным обновлением для .NET Framework 2.0. Это обновление включает изменения имен культур. Новые имена культур соответствуют синтаксису стандартов проблемной группы проектирования Интернета (IETF) (RFC 4646 и RFC 4647). Изменение имен культур улучшает возможность взаимодействия, так как каждый язык теперь имеет постоянный идентификатор.

Сопоставление старых имен культур с новыми именами культур следующее:

Старое имя культуры

Новое имя культуры

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

Временное решение

В качестве обхода проблемы можно создать пользовательские культуры из новых языков, использующих старые имена культур. Для этого выполните следующие действия.

Примечание. Для того чтобы использовать программу-пример, приведенную здесь, необходимо, чтобы на компьютере был установлен .NET Framework 2.0.

  1. Создайте приложение, которое может быть использовано для создания пользовательской культуры. Для этого выполните следующие действия:

    1. Выберите в меню Пуск пункт Выполнить, введите команду notepad и нажмите кнопку .

    2. Запустите программу «Блокнот» и скопируйте в окно редактора приведенный ниже код.

      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
      {
      // Create a new culture based on the old name
      CultureAndRegionInfoBuilder carib = new CultureAndRegionInfoBuilder(
      strAliasName, CultureAndRegionModifiers.None);

      carib.LoadDataFromCultureInfo(new CultureInfo(strRealName));
      carib.LoadDataFromRegionInfo(new RegionInfo(strRealName));

      carib.Register();

      // Change the existing culture's parent to the old culture
      carib = new CultureAndRegionInfoBuilder(strRealName,
      CultureAndRegionModifiers.Replacement);

      carib.Parent = new CultureInfo(strAliasName);
      carib.Register();

      // Verify they're registered...
      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);
      }
      }
      }

      Примечание. Эта программа-пример задает родителей новых культур родителями старых культур. Родители старых культур не могут быть одновременно родителями новых культур, так как эта ситуация приведет к бесконечной рекурсии в течение поиска источника.

    3. В меню Файл выберите команду Сохранить как.

    4. В диалоговом окне Сохранить как выберите Мой документ, введите MakeCultures.cs в поле Имя файла, щелкните Все файлы в поле Тип файла, а затем щелкните Сохранить.

    5. Закройте приложение «Блокнот».

  2. Запустите созданное приложение для создания пользовательской культуры. Для этого выполните следующие действия:

    1. Выберите в меню Пуск пункт Выполнить, введите команду cmd и нажмите кнопку ОК.

    2. Введите команду cd "Мои документы" и нажмите клавишу ВВОД.

    3. Введите %windir%\Microsoft.NET\Framework\v2.0.50727\csc /r: sysglobl.dll MakeCultures.cs и нажмите клавишу ВВОД.

    4. Чтобы создать культуру, введите MakeCultures.exe для запуска программы.

Статус

Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в разделе «Информация в данной статье применима к».

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×