web-dev-qa-db-ja.com

VS 2017の即時ウィンドウに「C#コンパイラの内部エラー」と表示される

Visual Studio 2017(15.6.6)を使用しています。デバッグ時には、イミディエイトウィンドウでint a = 2;のような単純な式を評価しようとします。エラー

C#コンパイラの内部エラー

スローされます。

この質問 で示唆されているようにUse Managed Compatibility Modeを有効にしようとしましたが、役に立ちませんでした。

助けてくれてありがとう。

11
Thaoden

さらに検索したところ、 このGitHubの問題Use the legacy C# and VB expression evaluatorsも確認することをお勧めします。 Visual Studioでは、このオプションのチェックに関する警告が表示されますが、これをオンにすると、イミディエイトウィンドウで式を再度評価できます。

Use Managed Compatibility Modeを再びオフにすることも可能です。

更新:従来の式エバリュエーターを使用すると、デバッグ時にローカル変数を検査できなくなるため、ソリューションとは呼ばないことに注意してください。

7
Thaoden

私の場合、問題は特定のアセンブリで発生していました。アセンブリ情報(ソリューションエクスプローラーでプロジェクトを右クリックし、[プロパティ]を選択し、[アセンブリ情報]をクリック)を見ると、すべて空白でした。

だから私たちはそれにGuidを与え、それから再構築してそれはうまくいきました。

1
newbi

同じ問題がありました。それがあなたの選択肢かどうかはわかりませんが、私にとっては次の問題でした。「デバッグ」バージョンの代わりに「リリース」がオンになりました。したがって、デバッグに切り替えた直後に、このエラーを解消しました。

0
Denis Koreyba

独自のNuGetパッケージを処理するときにも同じエラーが発生します。私の場合、VSは、ビルド出力フォルダーではなく、「%userprofile%.nuget」フォルダー内のアセンブリのコピーへのパスを解決します。

現在のところ、参照のヒントが指定されていない、新しいプロジェクトタイプのこの誤った解決を防ぐ方法はわかりませんが、簡単な回避策があります。デバッグする前に、パッケージのアンパックされたコピーを%userprofile%\.nuget\packages\%yourpackage%から削除するだけです。

0
sir_Andros