目次

ASP.NET Web Fromアプリケーションで「型または名前空間の名前 'クラス名' が名前空間 'System.Web.UI' に存在しません」エラーが発生しビルドできない - ASP.NET

ASP.NET Web Fromアプリケーションで「型または名前空間の名前 'クラス名' が名前空間 'System.Web.UI' に存在しません」エラーが発生しビルドできない現象と対処法を紹介します。

現象

プロジェクトをビルドすると、次のエラーメッセージが表示されます。
エラーメッセージ
CS0234 型または名前空間の名前 '(クラス名)' がな名前空間 'System.Web.UI' に存在しません (アセンブリ参照があることを確認してください))
英語メッセージでは次のメッセージになります。
Error Message
CS0234 The type or namespace name '(クラス名)' does not exist in the namespace 'System.Web.UI' (are you missing an assembly reference?)


System.Web アセンブリの一部のクラスは参照できますが、一部のクラスは参照できない状態になります。 Microsoft .NET Framework の Client Profileが設定されている症状に近い状態(参考)ですが、 プロジェクトの設定を確認しても Client Profileには設定されていない状態です。

対処法

ターゲットフレームワークを別のバージョンに変更すると解消される場合があります。 そのため、一度別の.NET Framework のバージョンに変更してビルドした後に、元の.NET Framework のバージョンに戻すと問題を解決できる場合があります。

手順

ASP.NETプロジェクトのプロパティを表示します。左側の[アプリケーション]の項目をクリックして選択します。下図の画面が表示されます。


[対象のフレームワーク]のコンボボックスをクリックします。ドロップダウンリストが表示されますので、現在のバージョンとは異なる.NET Frameworkのバージョンを選択します。 あまり古いバージョンですと互換性の問題が発生するため、一つ前のバージョンが良いかと思います。


下図の[ターゲットフレームワークの変更]ダイアログが表示されますので、[はい]ボタンをクリックします。


ターゲットフレームワークのバージョンが変更されました。この状態でビルドすると、先ほどのCS0234エラーが発生せずにビルドできます。


ビルドが通った後、ターゲットフレームワークのバージョンを元のバージョンに戻して、再度ビルドをします。エラーが解消され、正常にビルドできます。


CS0234エラーを解消することができました。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2022-05-16
作成日: 2022-05-16
iPentec all rights reserverd.