私のASP.NET MVC 4プロジェクト、私のGlobal.asax.cs
ページにエラーが表示されます
WebApiConfig.Register(GlobalConfiguration.Configuration);
名前 'GlobalConfiguration'は現在のコンテキストに存在しません
多くのコントローラーとビューを作成しましたが、この問題を解決してプロジェクトを回復するにはどうすればよいですか?
コンテキストの残りのコードは次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Routing;
namespace .....
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.Microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
}
アセンブリがあることを確認してくださいSystem.Web.Http.WebHost.dll
参照。これがGlobalConfigurationです。
.NET Framework 4.5.1では、GlobalConfigurationはSystem.Web.Http
:
PM> Install-Package Microsoft.AspNet.WebApi.WebHost
Update-Package Microsoft.AspNet.WebApi.WebHost -reinstall
これは私のために働いた。 Update-packageで参照が正しく更新されない、またはパッケージを削除して再度インストールするという問題に直面していました。
上記のコマンドはすべての依存関係を再インストールし、通常、nugetパッケージの参照の問題に直面したときにトリックを実行します。
4.5に基づいたasp.net Webフォームで、System.Web.Routing dllを追加し、global.aspxにimportを追加すると問題が解決しました
<%@ Import Namespace="System.Web.Routing" %>
<%@ Import Namespace="System.Web.Http" %>
私の場合、Glabal.asaxで同様の問題が発生していました。
The name 'AreaRegistration' does not exist in the current context.
すでにSystem.Web.Mvc
名前空間Global.asax.cs
しかし、コンパイラはそれを幾分認識していませんでした。つまり、AreaRegistration
クラスが見つかりませんでした。
問題を修正したのは、次のコマンドを Package Manager Console
Visual Studio内:
PM> Update-Package -reinstall
NuGetがプロジェクトのすべてのパッケージを再インストールした後、不足しているクラス名が表示され、コードが正常にビルドされました。
Visual Studio\NuGet復元パイプラインで何かが壊れています...
また、David Bohunekが提案するものと反対の(攻撃なし)ことを試みてください。私はダビデの提案を役に立たなかった。次に、「アセンブリ」セクションで直接参照された参照を削除します。
次に、Web Api 2.2およびWeb Api 2.2 Web Host Nugetsを削除し、クリーンを実行してから、JUSTでWeb Api 2.2 Web Host NuGetを追加し直しました。
やってみて幸運、それは私のために働いた。
上記のほとんどの修正を試みましたが、役に立ちませんでした。通常、上記の投稿では10分の9がこのエラーのために解決されますが、これらのどれも私を助けませんでした。
このエラーに対する私の修正は、名前空間の名前を変更し、最終的に問題を引き起こした名前空間への2つの異なる参照があったことです。最初から名前空間を更新したかったので、WebApiConfig.cs
の名前空間を新しい名前空間に変更することで、この問題を修正しました。どうやら、新しい名前空間名を使用していなかった最後のファイルの1つでした。
まあ、それを変更すると、エラーはなくなりました。また、この同じ問題に対する別の修正は、using old namespace name;
を指定することで、一時的に修正されたため、WebApiConfig.cs
の名前を新しい名前に変更することができました。