Visual Studio 2017(15.6.6)を使用しています。デバッグ時には、イミディエイトウィンドウでint a = 2;
のような単純な式を評価しようとします。エラー
C#コンパイラの内部エラー
スローされます。
この質問 で示唆されているようにUse Managed Compatibility Mode
を有効にしようとしましたが、役に立ちませんでした。
助けてくれてありがとう。
さらに検索したところ、 このGitHubの問題 でUse the legacy C# and VB expression evaluators
も確認することをお勧めします。 Visual Studioでは、このオプションのチェックに関する警告が表示されますが、これをオンにすると、イミディエイトウィンドウで式を再度評価できます。
Use Managed Compatibility Mode
を再びオフにすることも可能です。
更新:従来の式エバリュエーターを使用すると、デバッグ時にローカル変数を検査できなくなるため、ソリューションとは呼ばないことに注意してください。
私の場合、問題は特定のアセンブリで発生していました。アセンブリ情報(ソリューションエクスプローラーでプロジェクトを右クリックし、[プロパティ]を選択し、[アセンブリ情報]をクリック)を見ると、すべて空白でした。
だから私たちはそれにGuidを与え、それから再構築してそれはうまくいきました。
同じ問題がありました。それがあなたの選択肢かどうかはわかりませんが、私にとっては次の問題でした。「デバッグ」バージョンの代わりに「リリース」がオンになりました。したがって、デバッグに切り替えた直後に、このエラーを解消しました。
独自のNuGetパッケージを処理するときにも同じエラーが発生します。私の場合、VSは、ビルド出力フォルダーではなく、「%userprofile%.nuget」フォルダー内のアセンブリのコピーへのパスを解決します。
現在のところ、参照のヒントが指定されていない、新しいプロジェクトタイプのこの誤った解決を防ぐ方法はわかりませんが、簡単な回避策があります。デバッグする前に、パッケージのアンパックされたコピーを%userprofile%\.nuget\packages\%yourpackage%
から削除するだけです。