ASP.NET で型が参照されていないアセンブリで定義されているというエラーが発生した場合 (CS0012)

SPECIAL


デバッグ実行時に参照まわりのエラーが発生 (CS0012)

Visual Studio 2012 で ASP.NET のプログラミングをしていたときに、デバッグ実行時に次のようなエラーが発生したことがありました。

コンパイルエラーメッセージ: CS0012: 型 'System.Data.Services.Client.DataServiceContext' が参照されていないアセンブリで定義されています。アセンブリ 'System.Data.Services.Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' への参照を追加してください。

プロジェクトの参照設定自体では "System.Data.Services.Client" が設定されていて、ビルドまでは問題なく通過するのですけど、付属の IIS Express を使ってデバッグ実行すると、このエラーがブラウザー上に表示されます。

Web.config に <assembly> を設定する

これを解消するには、エラーで通知されたアセンブリを Web.config の <system.web> タグ内に明記する必要があるようです。

<system.web>

<compilation debug="true" targetFramework=“4.5">

<assemblies>

<add assembly="System.Data.Services.Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

</assemblies>

</compilation>

</system.web>

Visual Studio 2012 が自動生成した Web.config には <compilation debug="true" targetFramework="4.5"> というタグが記載されていたので、その中に <assemblies> タグを用意します。そして、その中に <add assembly=""/> として、エラーで通知されたアセンブリを追加します。

このようにすることで、デバッグ実行時に発生していたエラーが解消され、実行できるようになりました。