VS 2015に切り替えました。4.52に対して実行される古いMVC 5アプリがあります。 VS 2013では、まったく問題ありません。
VS 2015では、@Html.TextBoxFor()
の下に赤い波線が表示され、次のエラーが表示されます。
型 'Expression <>'は、参照されていないアセンブリで定義されています。アセンブリ「System.Core、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089」への参照を追加する必要があります。
プロジェクトは正常にビルドおよび実行されますが、VS 2013では発生しなかったIntelliSenseエラーが心配です。さて、上記のエラーで推奨されているようにSystem.Coreへの参照を追加しようとすると、このエラーが発生します。
「System.Core」への参照を追加できませんでした。このコンポーネントは、ビルドシステムによってすでに自動的に参照されています。
繰り返しますが、これはVS 2013では問題ありません。
私は同じ問題を抱えていましたが、その間に答えを見つけました:
次の参照をweb.configに追加する必要がありました(開始system.webタグ内に追加)。
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add Assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add Assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add Assembly="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<add Assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<add Assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add Assembly="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add Assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add Assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add Assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
また、ターゲットフレームワークを4.5.1から4.5に変更しました。
p.s変更後、Visual Studioを閉じて再度開きます。
これらのほとんどを試してみましたが、最終的にはプロジェクトをアンロードし、csprojファイルを編集して、次を追加しました。
<Reference Include="System.Core" />
ソリューションを削除し、ソース管理からソリューションを取得するだけでこれが解決され、.vsフォルダを削除してVS2015を「devenv.exe/resetuserdata」として起動しても問題は解決しませんでした、MEFコンポーネントキャッシュを削除するイベントは Razor VS 2015でインテリセンスが機能しない 回答。
4.5.2から4.6.1への更新から、これらの正確なエラーが表示されました。ソリューションの構築と実行は完全にうまくいきました。ここにすでに投稿されているすべてのソリューションを試してみた後(また、インテリセンスのチェック、キャッシュのクリア、binフォルダーとobjフォルダーの削除、プロジェクトの読み込みと再読み込み)、何も機能しませんでした(system.coreは既に正しく構築され、これらの参照を追加しています) Web.configは何もしませんでした)。自分で掘り下げた結果、エラーが発生したプロジェクトで、Web.configファイルに2つのコンパイルデバッグターゲットフレームワークと異なるhttpRuntimeターゲットフレームワークが含まれていることがわかりました。そのようです:
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.6.1" />
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.1" />
...
解決策は、余分なコンパイルデバッグターゲットフレームワークを削除してこれを解決し、すべてのターゲットフレームワークが必要なものであることを確認することでした(4.6.1)
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
...
何も機能しない場合は、これを再確認してください。それが誰かを助けることを願っています!
誰かがこの問題に直面している場合
VS 2017、.net frameworkバージョン4.8およびMVCバージョン5.2.7
Then check your Microsoft.CodeDom.Providers.DotNetCompilerPlatform version, If you have 2.0.1 version installed then downgrade it to 2.0.0
次に、MVCバージョンを確認し、5.2.4にダウングレードする必要があります
Then downgrade Microsoft.AspNet.WebPages 3.2.7 to Microsoft.AspNet.WebPages 3.2.4
and Microsoft.AspNet.Razor 3.2.7 to Microsoft.AspNet.Razor 3.2.4
今すぐアプリケーションを実行してみてください、それは動作します。
私の場合、タグ<ProjectGuid>
in .csproj
ファイルから<ProjectGuid>{6C651A5E-8DDA-4680-804E-F9596743CBE8}</ProjectGuid>
およびソリューションを再度開きます。上記のすべてのソリューションがうまくいきませんでした。
他のStack Overflowスレッドでこれらのソリューションや他のソリューションを試しました。うまくいきませんでした。
うまくいったのは、システム設定、アプリと機能のサブメニューにあるVisual Studioのインストールを修復することでした(VSをクリックして[修復]を選択します)。数時間かかりましたが、問題はなくなりました。