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ビューのインテリセンスを強化できないことを意味します。修正するには、次のいずれかまたは両方が必要になる場合があります。
[root] /Web.config:
<system.web>
<compilation targetFramework="4.6" />
プロジェクトのプロパティ:
[views folder] /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" />
私はちょうどまったく同じ問題を抱えていましたが、どのソリューションも問題を解決しませんでした。これをweb.config
内のSystem.Web
に追加する必要がありました
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
config
の一部を変更するときに削除しました。
プロジェクトディレクトリから[projectName] .csproj.userファイルを削除すると助かりました。
私の場合、このメッセージはResharperがオンになっているときにのみ表示されました。 Resharperキャッシュをクリアし、VSを再起動し、Resharperをオフにして、再びオンにしました。メッセージは消えました。
私はアセンブリが見つからないという同じ問題を抱えていましたが、VS2017ビルドがそれをBinフォルダに適切にコピーしなかったことが起こりました。これらの手順は私を助けました:
- Webプロジェクトの参照ノードに移動します
- System.Coreへの参照を見つけます
- VSプロパティウィンドウを開く
- プロパティウィンドウで、[ローカルコピー:False]を[True]に変更します。
このコメントから: CS0012:型 '##### Any type #####'は、参照されていないアセンブリで定義されています
Cshtmlファイルのビルドアクションが「コンテンツ」に設定されていることを確認します。
私はReSharperを使用していますが、何らかの理由で、テンプレートの呼び出し時に生成されるファイルがデフォルトで「なし」になっていることに気付きました。
Web.configで変更する必要がありました:
<system.web>
<compilation debug="true" targetFramework="4.7">
に
<system.web>
<httpRuntime targetFramework="4.7" />
<compilation debug="true" targetFramework="4.7">
私にとっては、プロジェクトメニューの下に「Enable C#6.0/VB 14」というオプションがありました。このオプションを選択するとうまくいきました。以前は、この投稿で提案されているように、web.configの変更、Visual Studioの再起動などを試みました。
注:web.configにSystem.Coreアセンブリを追加しても、MVCバージョンのダウングレードも行われませんでした。参照を右クリックしてSystem.Coreを手動で追加しようとすると、例外が発生しました。
「System.Core」への参照を追加できませんでした。このコンポーネントは、ビルドシステムによって既に自動的に参照されています。
プロジェクトプロパティのTargetFrameworkがプロジェクトweb.configのTargetFrameworkと一致することを確認してください。
大規模なエンタープライズプロジェクト用のほとんどすべての.cshtmlファイルは、@ Htmlヘルパーと私の剣道グリッドでエラーを投げていました。コードを徹底的にチェックしましたが、間違いはありませんでした。これが私にとって最終的に解決したものです:
Slnのクリーニング、binの削除、obj、再構築、VSの再起動などの後、システムディレクトリフォルダーにbinフォルダーを作成しました。手動でSystem.Core.dllファイルをビンに追加しました。プロジェクトを再起動してビルドすると、機能しました。
以下をWeb.config(ルート)に追加します。以前の提案のすべてを絶対に試しましたが、以下が見つかるまで何も機能しませんでした。他の人の時間を節約できることを願っています。
TargetFramework = "4.6.1"を使用しますが、異なる場合は使用するバージョンに変更します。
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
</system.web>
私は同じ問題に直面しました。基本的に、問題は異なるバージョンのSystem.Web.Mvc
を使用していることです。 Tools > Nuget Package Manager > Manage Nuget Packages for Solution
を開いてください。おそらくSystem.Web.Mvc
はCosolidate
タブで見ることができます。アップグレードまたはダウングレードが最適なオプションです。現在.Net 4.6.1
である最新の.Netフレームワークを使用する場合は、すべてのSystem.Web.Mvc
バージョンを5.2.4.0
にアップグレードする必要があります。幸運を!
追加してみてください
using system.Linq.Expressions;
これは、ソリューションに複数のプロジェクトがあり、それらがすべて同じバージョンの.NET Frameworkをターゲットにしていない場合に発生する可能性があります。たとえば、Webアプリプロジェクトが.NET 4.5をターゲットにしており、.NET 4.5.2をターゲットとするソリューション内の別のプロジェクトへのアセンブリ参照がある場合。これを修正するには、プロジェクトを変更して、同じバージョンの.NET Frameworkをすべてターゲットにする必要があります。
1つまたは2つのCSHTMLファイルのみでこれを取得した場合...破損したファイルです。
いくつかの隠されたユニコード文字を含む破損したファイルでこれが発生しました。ドキュメントのすべてのテキストを新しいメモ帳インスタンスにコピーしてみてください。元のファイルの内容を消去して保存します...ファイルの長さが> 0の場合、何か問題があります。
ファイルを削除して、古いバージョンの上にメモ帳インスタンスを保存します。すべてのエラーは私のためになくなりました。
私のソリューションでは、これが数回発生しました。何が原因なのかはわかりませんが、私はResharperであると思われます巨大なメモリの塊を深byに飲み込み始めたときに台無しになります。
Resharperと愛/憎悪関係を持っているのは私だけですか?
Visual Studioを再起動するとうまくいきました。
これは私の意見の1つで起こりました-他のすべては大丈夫でした。私は次のことをしました:
答えがうまくいかない場合は、これを使用してください。私は同じ問題に直面しました!実際、migrationsフォルダー内のconfiguration.csファイルが見つからない/削除されました。移行フォルダーを削除し、データベースから移行テーブルも削除しました。次に、パッケージマネージャーコンソール(PM)で次のコマンドを使用しました。
Enable-Migrations -Force
Add-Migration Initial
update-database
このプロセスによりconfiguration.csファイルが再作成され、すべてが完全に機能しました!
私の場合、解決策はWeb.Config内でConnectionStringを移動することでした。このステートメントは、AppSettingsセクションの後にある必要があります。
プロジェクトのプロパティを確認して、ターゲットフレームワークを取得します。ターゲットフレームワーク.NETフレームワーク4.6.1 MVC 5.2.3に適合させることで、この問題をプロジェクトで解決しました。 NuGetからMVCバージョンを入手しました。
私もこの問題を抱えていました。 web.configファイルでtargetFramework="4.5.2"
をtargetFramwork="4.5"
に変更すると解決しました。