2013-05-28 4 views
24

MVC4を使用してサイトを構築しています。私は奇妙な誤りを抱えていることさえできませんでした。これは私のコードです:HttpConfiguration missing assembly

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web.Http; 

namespace MyProject 
{ 
    public static class WebApiConfig 
    { 
     public static void Register(HttpConfiguration config) 
     { 
      config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 
     } 
    } 
} 

エラーメッセージ:アセンブリの種類や名前が「HttpConfiguration」名前空間に存在しません「System.Web.Http」(あなたがusingディレクティブまたはアセンブリ参照が不足しています?)

また、読み取り専用フィールドRouteParameterも認識しません。私にはバージョンと関係があるかもしれませんが、私のSystem.Web dllはバージョン4.0.0.0です。

情報のもう一つの追加部分は、私が入力したときに、「のSystem.Webを使用して。」ということで、インテリセンスは

しかし、コードでは、それはそのパラメータのいずれかを認識しない.Http dllファイルを認識しません。

+1

'HttpConfiguration'クラスは' System.Web.Http'ライブラリです。 – Jay

+1

はい、コードはSystem.Web.Httpを使用していることを示しています。しかし、それはHttpConfigurationを認識しません。(NORは、RouteParameterを認識します) – Soph

+2

'System.Web'アセンブリには、System.Web.Http名前空間のクラスが含まれています。なぜなら、そこにエラーが表示されないのですが、' HttpConfiguration'クラス'System.Web.Http'アセンブリにあり、' System.Web'ではありません。両方のアセンブリが参照されていることを確認できますか? – Jay

答えて

24

私はそれを解決しました。問題は、サイトを作成したときに、すべてのパッケージをNuget経由で更新したことです。しかし、Entity Frameworkを使用しないので、アンインストールしました。そのパッケージをアンインストールできるようにするためには、Microsoft.AspNet.Providers.Core 1.2もアンインストールする必要がありました。

この欠落しているパッケージは物事を混乱させました。私はプロジェクトをクリアして、もう一度始めた。 PMコンソールでUpdate-Packageコマンドを使用して、失われたパッケージをすべて復元することもできました。しかし、私がやった小さな(ヌルの隣の)仕事と比べると、とても混乱してしまったので、もう一度始めようと決めました。

ありがとうございました!

+10

この解決方法は私のところに邪魔しました...最終的に解決するためにパッケージを更新した後、新しい 'Install-Package Microsoft.AspNet.WebApi.Core'を実行する必要がありました。 – Kanapolis

+0

新しいインストールパッケージMicrosoft.AspNet.WebApi.Coreも私の問題を解決しました。ありがとう@Kanapolis –

+0

このパッケージをインストールするときに 'install.ps1がこのシステムでスクリプトの実行が無効になっているため読み込めません。 'というエラーが表示された場合は、Powershellでこのコマンドを実行してください:' ExecutionPolicy Unrestricted -Scope CurrentUser' 'Update-Package -reinstall Microsoft.AspNet.WebApi.Core' – eFarzad

1

先週から私たちのプロジェクトの1つでこの問題が発生し始めました。プロジェクトは2週間前にうまく構築していた&突然この例外を投げ始めました。このプロジェクトでは、ナゲットパッケージに変更はありませんでした。 SVNから古いリビジョンをチェックアウトしてもビルドに成功しませんでした。

私たちは絶望して、ソリューションをVS2012からVS2013 &にアップグレードしました。

これはすべてでは機能しない可能性がありますが、ソリューションをアップグレードするオプションがあるようですが、Visual Studio 2013で行われたツールアップデートがVisual Studio 2012でこのライブラリに影響を与えていることは確かですが、確認できませんでした。問題を解決する。

1

Framework 4.5ではなく4.0でコンパイルしてください。それは私にとって問題を解決しました

2

私の解決策は、この問題に直面している他の人にとっては、まず、私は4.0を.NETに4.5 .NETからプロジェクトをダウングレードされましたが、症状は上記と同じであった:

アセンブリ「HttpConfiguration」の種類や名前 名前空間「システムに存在しません。 Web.Http '(使用しているディレクティブまたは アセンブリ参照がありませんか?私はNewtonsoft.JsonHttpConfigurationの間のリンクがあることを説明したブログ記事を偶然見つけ

)、私はプロジェクトからNewtonsoft.Jsonへの参照を削除し、packages.configファイルは、パッケージマネージャコンソールからNewtonsoft.Json再インストール:

Install-Package Newtonsoft.Json 

Newtonsoft.Jsonは他の依存関係のためパッケージ管理コンソールからアンインストールできませんでした。したがって、参照を手動で削除する必要があります。 Newtonsoft.Json Hidden Dependencny on HttpConfiguration Breaks Compilation

+3

手動で削除するのではなく、Nuget Consoleからパッケージを再インストールしてください:Update-Package -reinstall Newtonsoft.Json – Riga

0

さらに別のシナリオ:

は、ここで記事へのリンクです。私は純粋にWeb APIなので、これは疑問にゆるやかに関連していることを認めます。しかし、私の検索は私にここにled ...

私はFramework 4.5.2を対象としたソリューションに既存のプロジェクトを持っていました。

新しいプロジェクトを追加したとき、私は十分な注意を払っていなかったので4.5になった。 HttpConfigurationは、Web API Registerメソッドからまったくなくなりました。

ターゲットを4.5.2に変更すると、HttpConfigurationの問題が解決されました。 RouteParameterで他の悲しみを引き起こしてしまったことに気をつけてください:System.Web.HttpとSystem.Web.UI.WebControlsの2つの定義がありました。簡単だと思います。

私の気持ちは、これまでよりがあることを...

2

1.Inソリューションエクスプローラで、プロジェクトノードを右クリックし、[参照の追加]をクリックします。

2. [参照の追加]ダイアログボックスで、[アセンブリ]タブを選択します。右上隅の検索ボックスに「system.web.http」と入力します。

3.参照するコンポーネントを選択してください。既に選択されている場合はより先に参照を削除してください。

プロジェクトを再ビルドします。それが動作すれば教えてください。ありがとうございました。

+0

私はすでに.NET 4.5 Newtonsoft.Jsonを再インストールしましたが、これ以外は何も動作しません。私はどのように参照を緩んで、わかりません、ありがとう! –

1

NugetからすべてのAspNetパッケージを更新して再インストールしたときに、適切な解決策がないようだ - Visual Studioを再起動すると私が救われた。

2

以前私のために働いていたMVC 4.0アプリケーションをクローンするときにこのエラーが発生しました。私の問題は、Microsoft.Net.Http NuGetパッケージが正しく復元されていないことでした。私はNuGetコンソールからそれを解決:

Update-Package -reinstall Microsoft.Net.Http