最近扱っているプロジェクトソリューションでCodeLensがなぜか動かなくなってしまいました。「-参照」の代わりに参照が表示されていません。しかし、別のプロジェクトで Visual Studio を開くと、魅力的に動作します。CodeLens が有効になっていることを確認できます。それを機能させるアイデアはありますか?
17 に答える
私の解決策:
CodeLens 機能をオフにしてから、もう一度オンにします。
- [ツール] -> [オプション...] -> [テキスト エディター] -> [すべての言語] -> [CodeLens] に移動します。
- [CodeLens を有効にする] オプションのチェックを外し、[OK] をクリックします。
- Tools -> Options... -> Text Editor -> All Languages -> CodeLens に戻ります。
- [CodeLens を有効にする] オプションをオンにして、[OK] をクリックします。
注: 問題の .cs ファイルを閉じてから再度開くことで、以前に問題を修正しました。参照ファイルを閉じる必要がある場合もあります。
私の問題:
元のポスターと同様に、CodeLens は多数のリファクタリングを行った後、参照の更新を停止しました。存在しないコードへの古い参照が表示されていました。元の投稿で説明されているように、「- 参照」の問題も表示されていました。
私の環境と特定のシナリオ:
- Visual Studio 2015 と Service Pack 2 および Resharper Ultimate 10.0.1
- 私は大量のリファクタリングを伴う大規模なオーバーホールを行っていましたが、私のプロジェクトは 1 時間ほどコンパイルできませんでした。プロジェクトを再度コンパイルすると、参照が機能しなくなりました。
.suo
環境/ソリューション設定を保存しているファイルを削除してみてください。これは私を助けました。
CodeLens の動作を妨げる循環参照がソリューションに含まれている可能性があります。Visual Studio Connect サイトのこの問題に関するコメントには、いくつかの詳細が記載されています。
どういうわけか、私のソリューションの 2 つのプロジェクトが相互に参照し、循環参照が発生しました。未定義のクラスを参照する Resharper のショートカットの副産物だったと思います。すべての参照をクリーンアップしたら、参照カウントで有効な値を取得できるようになりました。
どのように参照を「クリーンアップ」しましたか?
私の場合、私のソリューションには複数のプロジェクト ファイルがあります。プロジェクト A の参照フォルダーには、プロジェクト B への参照がありました。プロジェクト B の参照フォルダーには、プロジェクト A への参照がありました。これが循環参照の原因でした。これを「手動で」実行しようとすると、VS は循環参照に関する警告を表示します。
これをクリーンアップするために、プロジェクト A からプロジェクト B への参照を削除しました。プロジェクト B でいくつかのマイナーなクラス定義を行ったので、すべてが最終的にコンパイルされます。
ファイアウォールで Visual Studio をブロックすると、Code Lens が機能しないことがわかりました。
そのため、ファイアウォールからブロックを解除して機能させます。
または、ファイルのファイアウォール設定を編集します。
C:\Windows\Microsoft.NET\assembly\GAC_32\
Microsoft.Alm.Shared.Remoting.RemoteContainer\
v4.0_12.0.0.0__b03f5f7f11d50a3a\
Microsoft.Alm.Shared.Remoting.RemoteContainer.dll
「アップデート1」がすでにインストールされているVS2015でこの問題が発生しました。問題は、VS2015を「デフォルト」オプションではなく「カスタム」セットアップで最初にインストールし、「共通ツール」の下の「Git for Windows(サードパーティ)」オプションを誤って省略したことです。
これは、次の手順で修正できます。
- VS2015 セットアップを再度実行します (コントロール パネルから - アンインストール プログラム)。
- VS2015 を右クリックし、[変更] を選択します。
- ポップアップ画面で「変更」を選択
- セットアップ画面で「Git for Windows (サードパーティ)」を選択
- セットアップを続行し、選択した機能をインストールします
このスタック オーバーフローの質問への回答を読んだ後、CodeLens は参照のみを表示していますか? Codelens の問題は、Visual Studio 2015 Update 1 を実行していたが、Team Foundation Server 2012 を使用していたことにあると判断しました。前。次に、ソリューションをリロードしましたが、どこでも「–参照」とだけ表示されるという問題がありました。Visual Studio を閉じ、再度起動してソリューションをリロードすると、以前と同じように正しい参照カウントが表示されました。
この問題も見たので、上記の解決策のほとんどを試してみましたが、うまくいきませんでした。さらに、新しく追加された特定のクラスが、Visual Studio で白/黒 (通常のテキスト) として表示されていました。
リリースへの変更は通常、役に立ちましたが、長期的な解決策ではありませんでした。ただし、これは両方の問題に役立ちました-別のマシンで検証されました。手順の一部を省略できる場合があります。
- すべてのドキュメント タブを閉じる
- クリーン ソリューション
- ソリューションを右クリックし、[ライトウェイト ソリューション ロードを有効にする] をクリックします。
- ソリューションを閉じる
- ソリューションを再開する
- ソリューションを右クリックし、[軽量ソリューションの読み込みを無効にする] をクリックします。
- ソリューションを閉じる
- ソリューションを再開する
- 再構築
私も同じ問題を抱えていましたが、私と同じ開発環境を持っている同僚にはそれがありません...
両方の環境の唯一の違いは、RAM の量です。彼の VM には 10 GB が割り当てられており、私の場合は 6 GB が割り当てられています。VM に割り当てられた RAM の量を 8 GB にアップグレードしたので、すべての参照が表示されます。
新しい VS 2015 update 3 で、中レベルのソリューション 10 以上のプロジェクトの大規模なクラスで発生し、循環参照、不良な SUO ファイル、またはその他のものとは関係がないことがわかりました。一時ファイルの場所を削除し(すでに述べたように)、VSを閉じてから再度開いて「ALT + 2」(コードレンズの参照検索を強制)を押すと、魔法のように機能するようです。
一部のソリューションやプロジェクトでも表示され、Visual Studio は古い参照 suo ファイルを .vs フォルダーに作成します。正確な韻や理由はわかりませんが、私の場合は作成でき、CodeLens は再び機能しました。ソース管理下のプロジェクトで Visual Studio のオプションが何らかの形で参照されている可能性があります。私が知っているように、これはGitHubの管理下にある古いソリューションで何度もアップグレードしましたが、.gitignoreファイルがあります(無視ファイルはソース管理に応じて変更される可能性があります)。更新する必要があるソース管理ファイルにロックがあり、更新されない場合、過去に他の技術者と同様のことが起こったと言えば十分です。簡単な答えは、設定ファイルを無視して削除することです。