エラー内容
ファイルまたはアセンブリ 'System.Web.Http, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外:0x80131040)
マニフェストという英語の意味
マニフェスト【manifest】
https://www.weblio.jp/content/%E3%83%9E%E3%83%8B%E3%83%95%E3%82%A7%E3%82%B9%E3%83%88
名詞だと、「(船やトラックなどの)積荷目録」「乗客名簿」とのこと。日本では「政策宣言」としても使われる
「一覧表」くらいのニュアンスで捉えていいだろうか…
アセンブリマニフェストとは
ASPに限らず.NETのアセンブリは全て、アセンブリマニフェスト(というファイル)に
アセンブリメタデータ(アセンブリ内の要素の相互関係の情報など)が入っています。
アプリケーションを実行するのに何という名前のアセンブリのバージョンいくつを使うという一覧表のイメージ。(それ以外の情報も含まれますが。)
対応
今回のエラーは「System.Web.Http」というアセンブリの「Version=5.2.7.0」で読み込めない、という内容です。
Webアプリだといろいろなパッケージを追加でインストールすることがありますが、そうするとパッケージの依存関係が壊れることがよくあるそうです。確かにパッケージをいくつかインストールしたので、依存関係が壊れ、一部読み込めなくなったかもしれません。
そういう場合はパッケージをすべて再インストールすることで解消するようになります。
公式の再インストールの手順
Visual Studio のプロジェクトでは、パッケージへの参照が壊れてしまう状況が多々あります。 このような場合、パッケージの同じバージョンをアンインストールして再インストールすると、それらの参照は復元され動作するようになります。
nugetとpackages.configを使ってパッケージを管理していて、「パッケージ マネージャー コンソール」で全パッケージの再インストールを行ってみました。
パッケージマネージャーコンソールで再インストールコマンドを実行します。
Update-Package -reinstall
処理が完了したら、プロジェクトを実行してみます。
正常に表示されるようになれば完了です。
参考
パッケージを全て再インストールしてみると治ることが多々あります。