2013-02-12 10 views
30

Scott Hanselmen、Phil Haack、およびProfessional ASP.NET 3.5 MVCの第13章に従ってASP.net 4 WebフォームプロジェクトをAsp.net MVC4に変換しました。 Rob Conery、Wiley Publishing、Inc.(ISBN:978-0-470-38461-9)により発行されている。私もこれに続いたblog。これで、コントローラ、ビューなどを追加できます。すべての参照が適切に設定されています。ビルドエラーはありません。しかし、変換されたプロジェクトを起動すると、コンパイルエラーが発生しました。私はmvc3を同じマシンにインストールしています。私はそれへの言及を変更しました。それはまだ不平を言う。手伝ってくれる?ありがとう。CS0234:MvcはSystem.Webネームスペースに存在しません

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?) 

Source Error: 

Line 109:   <namespaces> 
Line 110:    <add namespace="System.Web.Helpers"/> 
Line 111:    <add namespace="System.Web.Mvc"/> 
Line 112:    <add namespace="System.Web.Mvc.Ajax"/> 
Line 113:    <add namespace="System.Web.Mvc.Html"/> 

Source File: c:\Users\Jon\Documents\Visual Studio 2012\Projects\CMT\Apps\Branches\3.0\Web.config Line: 111 
+0

記事を読まずに、idは知りたいのですが、mvc dllの参照を追加しましたか? –

答えて

8

あなたのWebアプリケーションがサーバーにデプロイする場合、この問題が発生することがありますので、あなたがしなければなりませんMVC3がすでにインストールされているかどうか確認してください。

フォルダC:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3が存在するかどうかを確認します。

それが存在しない場合、あなたはあなたがbinフォルダにローカルにすべてのDLLを追加し、ホストあればそれらにこの作品の罰金を参照を追加することができますインストールするには文句を言わない場合http://www.microsoft.com/en-us/download/details.aspx?id=1491


からそれをインストールする必要がありますASP.NET WebページまたはMVC3をデプロイしないでください。

+1

ありがとう! MVC2の場合も同じ話です:https://www.microsoft.com/en-gb/download/details.aspx?id=22079 –

6

web.configファイル内のランタイムのタグを確認し、あなたがこのような何かを持って検証が宣言:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
..... 
</runtime> 
1

プロジェクトにSystem.Web.Mvcアセンブリへの参照を含める必要があります。

あなたはCでSystem.Web.Mvcを持っていない可能性があります\プログラムファイル(x86の)\リファレンスアセンブリ\マイクロソフト\ Framework.NETFramework \ v4.0のを

だから、あなたはそれを追加してからにする必要がありますあなたのprojrectへの参照としてそれを含めてください

0

私はこの問題を抱えていましたが、IISのすべてのアプリケーションは以前に作業していたときに壊れていました。特筆すべき解決策のどれも私を助けませんでした。問題はweb.configの余分なコピーが私のルートディレクトリに導入されたことに終わった。そのファイルを削除して問題を解決しました。

75

私は同じ問題を抱えていたし、私はそれを解決していた:

液にクリックし、[ソリューションエクスプローラで'Clean Solution'

2.Click 'References'フォルダをクリックして、あなたのケースで問題の参照を(選択1.RightそれはSystem.Web.Mvcのようです)を右クリックし、'Properties'をクリックします。プロパティウィンドウ3.In

'Copy Local'プロパティはこれが私のために働いた'True'

に設定されていることを確認してください。それはすでにTrueに設定されている場合は

を:それは@Vladのコメントで述べたように:それは他の誰か

参考注のために働くホープ

  1. 設定をFalseに
  2. セットそれもまた真実
  3. リビルド
+8

私の場合は、ローカルコピー= trueに設定されましたが、何らかの理由でDLLが設定されていませんでしたそこ。私はそれをfalseに設定し、true> rebuildに戻します。助けられた。 –

+3

ちょうど今この問題があり、これは完全に機能しました! – HTX9

+3

しかし...なぜあなたはこれをしなければならないのですか?私はちょうど空のmvcプロジェクト(2013年)を作成し、それを動作させるためにこれをしなければなりませんでした。デフォルトでは、ビジュアルスタジオで開始するプロジェクトは機能しません。どのようにこれでスリップすることができますか? – zod

3

私はすべてを試しましたheseの回答、Visual Studioを閉じてすべてのbinディレクトリを削除しました。

もう一度起動すると、MVCリファレンスに黄色の感嘆符が表示されたので、削除してもう一度追加しました。

これはコピーローカルではありません。

+1

同じケースがここにあります!ありがとう! – Santiago

3

私の以前の回答はどれも役に立たなかった。

私のプロジェクトが.NET FrameworkのSystem.Web.Mvcリファレンスを使用している別のプロジェクトを参照していることに気付きました。

私はそのアセンブリを削除し、 "Microsoft.AspNet.Mvc" NuGetパッケージを追加して問題を修正しました。

1

Microsoft.AspNet.Mvc nugetパッケージを追加します。

関連する問題