ASP.NET Web Fromアプリケーションで「型または名前空間の名前 'クラス名' が名前空間 'System.Web.UI' に存在しません」エラーが発生しビルドできない現象と対処法を紹介します。
プロジェクトをビルドすると、次のエラーメッセージが表示されます。
英語メッセージでは次のメッセージになります。
System.Web アセンブリの一部のクラスは参照できますが、一部のクラスは参照できない状態になります。
Microsoft .NET Framework の Client Profileが設定されている症状に近い状態(参考)ですが、
プロジェクトの設定を確認しても Client Profileには設定されていない状態です。
ターゲットフレームワークを別のバージョンに変更すると解消される場合があります。
そのため、一度別の.NET Framework のバージョンに変更してビルドした後に、元の.NET Framework のバージョンに戻すと問題を解決できる場合があります。
ASP.NETプロジェクトのプロパティを表示します。左側の[アプリケーション]の項目をクリックして選択します。下図の画面が表示されます。
[対象のフレームワーク]のコンボボックスをクリックします。ドロップダウンリストが表示されますので、現在のバージョンとは異なる.NET Frameworkのバージョンを選択します。
あまり古いバージョンですと互換性の問題が発生するため、一つ前のバージョンが良いかと思います。
下図の[ターゲットフレームワークの変更]ダイアログが表示されますので、[はい]ボタンをクリックします。
ターゲットフレームワークのバージョンが変更されました。この状態でビルドすると、先ほどのCS0234エラーが発生せずにビルドできます。
ビルドが通った後、ターゲットフレームワークのバージョンを元のバージョンに戻して、再度ビルドをします。エラーが解消され、正常にビルドできます。
CS0234エラーを解消することができました。