特定の .NET Framework 2.0 ソフトウェア更新プログラムがインストールされているコンピュータでアプリケーションを実行するか Web サイトにアクセスすると、エラー メッセージ "カルチャ名 'Culture' はサポートされていません" が表示される

文書翻訳 文書翻訳
文書番号: 939949 - 対象製品
すべて展開する | すべて折りたたむ

現象

Microsoft Windows Server 2003 がインストールされているコンピュータに、「サポート技術情報」 (Microsoft Knowledge Base) の以下の資料に記載されている Microsoft .NET Framework 2.0 ソフトウェア更新プログラムをインストールします。
928365 Windows Server 2003、Windows XP、および Windows 2000 用の .NET Framework 2.0 のセキュリティ更新プログラム (2007 年 7 月 10 日) について
コンピュータでアプリケーションを実行するか、Web サイトにアクセスするときに、次のエラー メッセージが表示されることがあります。
[System.ArgumentException] : Culture name 'Culture' is not supported for the following 13 cultures: 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 と入力し、[OK] をクリックします。
    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. で作成したアプリケーションを実行して、カスタム カルチャを作成します。これを行うには、以下の手順を実行します。
    1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックし、cmd と入力し、[OK] をクリックします。
    2. cd "My Documents" と入力し、Enter キーを押します。
    3. %windir%\Microsoft.NET\Framework\v2.0.50727\csc /r: sysglobl.dll MakeCultures.cs と入力し、Enter キーを押します。
    4. MakeCultures.exe と入力してプログラムを実行し、カルチャを作成します。

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

プロパティ

文書番号: 939949 - 最終更新日: 2007年12月3日 - リビジョン: 1.1
この資料は以下の製品について記述したものです。
  • Microsoft .NET Framework 2.0
キーワード:?
kbbug kbfix kbsecvulnerability kbqfe kbsecurity kbsecbulletin kbpubtypekc kbexpertiseadvanced KB939949
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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