GitHubから取得したローカルコンピューターで.NET MVCアプリケーションを実行しようとしています。
Visual Studioで実行をクリックすると、すべてが準拠し、新しいブラウザーウィンドウが開いてエラーが表示されます。
CS1980:コンパイラーが「System.Runtime.CompilerServices.DynamicAttribute」タイプを必要としたため、「dynamic」を利用するクラスまたはメンバーを定義できません
同じウィンドウのコンパイラセクションには、次のエラーが表示されます。
私はグーグルでチェックしました this は同じエラーのようです。
この男は自分で動的型を使用していましたが、一方で動的型は使用していません。これは.NETのコンパイラによって自動生成され、動的をサポートする.net 4.5を使用しています。
私は同じソリューションを適用しようとしました(すべてのSystem.Core参照を4.0に変更しました)が、問題はそれらのすべてが既にバージョン4.0であるということです。
どうすればこれを解決できますか?
移行しようとしたプロジェクトで同様のエラーが発生しました。プロジェクトのフレームワークを1つまたは2つ前のバージョンにターゲット変更してみてください。エラーが発生しないターゲットバージョンを見つけたら、最初に問題が発生したバージョンにターゲットを変更してください。
いくつかの古いライブラリを参照している4.6.2を対象としたWebサイトプロジェクトで同じエラーが発生し、それを4.5.1に再ターゲットし、エラーを解決しました。私はすぐに4.6.2にターゲットを変更しましたが、エラーは再び発生しませんでした。
「従来の」MVCアプリ(新しい.NET Core/vNextアプリではありません)を使用してVS2015.3に更新した数日後に、突然このエラーが発生しました。
このエラーは完全なニシンである可能性があります。
確認してください:
私の場合、エラーを引き起こし、何らかの理由でこの奇妙な「赤いニシン」の動的エラーも引き起こしたTypeScriptエラーがありました。
私の修正は、.csproj
ファイルを作成し、TypeScriptツールのバージョンを1.8に更新します(プロジェクトをアンロードして手動で編集する必要があります)。私が言ったように、これはエラーとは関係ありませんが、他の誰かがこの同じ問題で終わる可能性があるため、詳細を述べます。
1.7はTypeScriptモジュールシステムに対して「なし」を受け入れなかったのに対し、1.8は受け入れなかったため、エラーが発生したと考えています。
私はこれと同じ問題を抱えていましたが、ここでの答えはどれもそれを解決しませんでしたが、正しい方向に私を向けました。マシンの.NETバージョンを新しいバージョンに更新しなかったと思います。それをインストールした後、ターゲットフレームワークをロールバックし(提案どおり)、新しいフレームワークを再ターゲットし、さらにいくつかの追加の操作を行いました。
パッケージマネージャーでこれを実行して、すべてのパッケージを再インストールしました。
update-package -reinstall
また、プロジェクトを4.5で機能していたプロジェクトと比較して、次のことを行いました。
System.Net.Http
の古いパッケージバージョンを削除しました(web.configを参照-バージョンにはoldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"
と表示されるはずです)。他のエラーを解決するために私がしたもう1つのことは、ここにあるすべてのファイルを削除してコンポーネントキャッシュをクリアすることです。
C:\Users\{USERNAME}\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache\
[暴言]このすべてで1日無駄になりました。人生のもう1日を盗んで、ありえない無意味な問題を修正してくれたMSに感謝します。アップグレードするたびに、私はいつも素晴らしい驚きと、古いニワトリをアップグレードする人にとって、これらの競合を検出するのに問題はないでしょうか?何かがうまくいかないときは、おそらくより良いエラートレースですか?それは難しいとは思いません。 ?[/ rant]
System.Dynamic.Runtime
への参照を追加してくれました。
同じエラーが発生しました。削除する必要があるデータベースセットの未使用テーブルが2つしかありませんでした。自動生成されたコードの作業で手動でsthを変更したとき、なぜ機能したのか疑問に思いますが、削除した後は機能しました。
そのため、このような不整合によりこのエラーが発生する可能性があることに注意してください。
私の解決策は、viewsフォルダーの下のweb.configでMVCのバージョンを修正することでした。例えば。プロジェクトはMVCアセンブリバージョン5.2.2.0を参照していましたが、Views/web.configファイルではバージョン5.2.4.0でした(画像を参照)。