ASP.NET MVC 4.5.2フレームワーク。
入力後
@Html.LabelFor()
or
@Html.EditorFor()
ビューで
エラーになっています。参照されていないアセンブリで型 'Expression<>'が定義されています。アセンブリ 'System.Core、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089'への参照を追加する必要があります。
アセンブリ参照System.Core.dll、バージョン4.0.0.0、ランタイムバージョンv4.0.30319を追加しました。そしてまた私はweb.configでやった
ずっと後ではあるが、私はあなたと同じ問題に遭遇した。問題は、アセンブリ参照が見つからないというエラーが発生したため、Razorビュー(.cshtml)にアクセスできないということでした。System.Web.Mvc
たとえそれがプロジェクト参照にあったとしても。調査の結果、インストールされているNuGetのバージョンは5.2.3で、プロジェクトには5.2.0が必要であることに気付きました。解決策はMVCバージョンをダウングレードすることです。
すべてのダイアログを確認すれば準備は完了です。
私はあなたがまだこの問題を抱えているかどうかわからないが、私は同じ問題を抱えていた。
私はここで解決策を見つけることができました
https://stackoverflow.com/questions/6496223/compilation-error-in-net-4-0-web-config-linq-not-found
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
これが役に立つことを願っています..
このエラーは、Visual StudioがSystem.Web.Mvcアセンブリを見つけて、Razorビューに対するインテリセンスを強化することができないことを意味します。それを修正するには、次のいずれかまたは両方が必要になることがあります。
[ルート] /Web.config:
<system.web>
<compilation targetFramework="4.6" />
プロジェクトのプロパティ
[ビューフォルダ] /web.config:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
MVCアセンブリ参照プロパティ
私はこれらのほとんどを試しました、結局私のために働いたのはプロジェクトをアンロードし、csprojファイルを編集し、そして以下を追加することでした:
<Reference Include="System.Core" />
https://stackoverflow.com/a/38371981/2335660
私の場合、このメッセージはResharperがオンになっているときにのみ表示されました。 Resharperキャッシュをクリアし、VSを再起動し、Resharperをオフにしてから再びオンにしました。メッセージは消えました。
私はちょうど同じ問題を抱えていて、解決策のどれも問題を解決しませんでした。私はこれを自分に追加しなければなりませんでしたweb.config
内にSystem.Web
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
いくつかの変更時に私はそれを削除しましたconfig
周りです。
cshtmlファイルのBuild Actionが 'Content'に設定されていることを確認してください。
私はReSharperを使っていますが、何らかの理由でテンプレートを起動したときに生成されるファイルがデフォルトの 'None'になることに気付きました。
私はアセンブリが見つからないという同じ問題を抱えていました、そしてそれはVS2017ビルドがBinフォルダにそれを正しくコピーしなかったことが起こりました。これらのステップは私を助けました:
- Webプロジェクトの「参照」ノードに移動します
- System.Coreへの参照を検索
- VSプロパティウィンドウを開く
- プロパティウィンドウで、Copy Local:FalseをTrueに変更します。
このコメントから:CS0012:型 '#####任意の型#####'が参照されていないアセンブリに定義されています
私にとっては、プロジェクトメニューの下に「C#6.0 / VB 14を有効にする」というオプションがありました。このオプションを選択するとうまくいきました。以前は、この記事で提案したようにweb.configを変更し、Visual Studioを再起動するなどしてみました。
私は同じ問題に直面しました。基本的に問題はの異なるバージョンを使用していますSystem.Web.Mvc
。だからあなたが開くべき最高のものTools > Nuget Package Manager > Manage Nuget Packages for Solution
。あなたはおそらく見ることができますSystem.Web.Mvc
にCosolidate
タブ。アップグレードまたはダウングレードが最良の選択肢でしょう。最新の.NET Frameworkを使用している場合.Net 4.6.1
、すべてをアップグレードする必要がありますSystem.Web.Mvc
バージョンを5.2.4.0
。がんばろう!
Web.configで私は変更する必要がありました:
<system.web>
<compilation debug="true" targetFramework="4.7">
に
<system.web>
<httpRuntime targetFramework="4.7" />
<compilation debug="true" targetFramework="4.7">
これは私の見解の1つで起こりました - 他のすべては大丈夫でした。私は次のことをしました:
Visual Studioを再起動するとうまくいきました。
私もこの問題を抱えていました。
変化targetFramework="4.5.2"
にtargetFramwork="4.5"
web.configファイルでそれを解決しました。
1つか2つのCSHTMLファイルでこれを取得するとしたら...それは破損したファイルです。
私はいくつかの隠されたUnicode文字を含む破損したファイルでこれを起こしました。 文書のすべてのテキストを新しいメモ帳のインスタンスにコピーしてみてください。 元のファイルの内容を消去して保存します。ファイル長が> 0の場合は、問題があります。
ファイルを削除し、古いバージョンの上にメモ帳のインスタンスを保存します。 すべてのエラーは私のために消えました。
私はこれを私の解決策で数回起こしました。何が原因なのかわからないが、私はResharperだと思う巨大なメモリの塊を深淵に飲み込み始めたときには、めちゃくちゃになります。
Resharperと恋愛関係を持っているのは私だけですか?
ソリューションに複数のプロジェクトがあり、それらすべてが同じバージョンの.NET Frameworkを対象としていない場合に発生する可能性があります。たとえば、Webアプリケーションプロジェクトが.NET 4.5をターゲットとしていて、.NET 4.5.2をターゲットとするソリューション内の別のプロジェクトへのアセンブリ参照があるとします。これを修正するには、プロジェクトをすべて同じバージョンの.NET Frameworkをターゲットにするように変更する必要があります。
答えがどれもうまくいかない場合は、これを使用してください。私は同じ問題に直面しました!実際にmigrationsフォルダーのconfiguration.csファイルが見つからない/削除されました。マイグレーションフォルダーを削除し、データベースからマイグレーションテーブルも削除しました。パッケージマネージャコンソール(PM)では、次のコマンドを使用していました。
Enable-Migrations -Force
Add-Migration Initial
update-database
このプロセスでconfiguration.csファイルが再作成され、すべてうまくいきました。
ターゲットフレームワークを取得するには、プロジェクトのプロパティを確認してください。私は自分のターゲットフレームワークに合わせることで私のプロジェクトでこの問題を解決しました。NETframework 4.6.1 MVC 5.2.3はaptのソリューションでした。そのMVCバージョンをNuGetから入手しました。
以下をWeb.config(root)に追加します。私は以前の提案のすべてを絶対に試してみましたが、以下を見つけるまで何もしませんでした。それが他の人の時間を節約することを願っています。
私はtargetFramework = "4.6.1"を使用しますが、違う場合はあなたが使用するバージョンに変更してください。
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
</system.web>
私の場合、解決策はConnectionStringをWeb.Config内に移動することでした。このステートメントはAppSettingsセクションの後に置く必要があります。
削除中[projectName] .csproj.userプロジェクトディレクトリからファイルを私のために助けた。