[FIX] Visual Studio 2010 で Visual C# Windows フォーム ソリューションをビルドしようとすると、エラー メッセージ "型または名前空間名 'ClassName' は存在しません" が表示される


現象


次のような状況で問題が発生します。
  • Visual C# 言語を使用して、Microsoft Visual Studio 2010 で Windows フォーム ソリューションを開きます。ソリューションのプロジェクトには以下の機能があります。
    • プロジェクトに Windows フォームが含まれています。Windows フォームは、4 レベルの名前空間に宣言されています。たとえば、名前空間 A.B.C.D に宣言されているとします。
    • プロジェクトは、子名前空間を持つ同じ名前空間を含むアセンブリを参照しています。子名前空間には、アクセス不可能な型のみが含まれます。たとえば、子名前空間には、アクセス不可能な型 A.B.C.D.X.ClassX が含まれます。
    • プロジェクトは、パブリック コントロールを公開する別のアセンブリを参照しています。たとえば、プロジェクトはパブリック コントロール A.B.C.X.Control1 を参照しています。
  • 以下のいずれかの手順を実行します。
    • パブリック コントロール A.B.C.X.Control1 を Windows フォームにドラッグする。
    • パブリック コントロールを削除してから、それを Windows フォームに再度ドラッグする。
  • プロジェクトを保存してから、ソリューションのビルドを試みる。
この場合、ビルド手順が失敗し、次のエラー メッセージが表示されます。
型または名前空間名 'ClassName' は名前空間 'Namespace' に存在しません。アセンブリ参照が不足しています。
: 上記のエラー メッセージの ClassName にはクラスの実際の名前が入り、Namespace には実際の名前空間の名前が入ります。

原因


この問題は、パブリック コントロールに対して正しくない最小限の修飾名がソース コードに生成されるために発生します。たとえば、パブリック コントロールが "C.X.Control1" ではなく "X.Control1" となります。Visual Studio で最小限の修飾名を生成する手順では、子名前空間内のアクセス不可能な型は無視されます。しかし、Visual C# コンパイラではアクセス不可能な型は無視されません。そのため、この問題が発生します。  

解決方法


修正プログラムの情報

マイクロソフトでは、現在この問題を修正する修正プログラムを提供しています。ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。この修正プログラムは、ここで説明する問題が発生しているシステムにのみ適用してください。この修正プログラムには、今後さらにテストが行われる場合があります。したがって、この問題の影響が深刻でない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことを推奨します。

この問題をすぐに解決するには、Microsoft Customer Support Services にお問い合わせのうえ、修正プログラムを入手してください。Microsoft Customer Support Services の電話番号一覧およびサポート料金については、次のマイクロソフト Web サイトを参照してください。: Microsoft Support 担当者が、特定の更新プログラムを適用することにより問題が解決されると判断した場合、サポート依頼に通常かかる料金が免除されることがあります。ただし、特定の更新プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。

必要条件

この修正プログラムを適用するには、Visual Studio 2010 がインストールされている必要があります。

再起動の必要性

この修正プログラムの適用後、影響を受けるファイルが使用されている場合は、コンピューターを再起動する必要があります。

修正プログラムを適用する前には、Visual Studio のすべてのインスタンスを閉じることをお勧めします。

更新プログラムの置き換えに関する情報

この更新プログラムを適用しても、他の修正プログラムが置き換えられることはありません。

ファイル情報

修正プログラム (英語版) のファイル属性は次の表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。これらのファイルの日付と時刻は世界協定時刻 (UTC) で記載されています。ファイル情報に表示される時刻は、ローカル時刻に変換されています。UTC とローカル時刻との時差を確認するには、コントロール パネルの [日付と時刻] の [タイム ゾーン] タブを使用してください。
サポートされているすべてのバージョンの Visual Studio 2010
File nameFile versionFile sizeDateTimePlatform
Cslangsvc.dll10.0.30319.4225,763,92028-Jan-201007:47x86

状況


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