web-dev-qa-db-ja.com

Visual Studioで自動完了(IntelliSense)データベースを更新する

Visual Studio のオートコンプリート機能は、プロジェクトが特定のサイズ(私の場合は〜4,100行のコード)に達すると、正しく機能しなくなることに気付きました。また、サードパーティのライブラリの数が増えると、パフォーマンスも低下することに気付きました(名前空間とクラス属性とメソッドは表示されなくなります)。

自動補完データベースを手動で更新する方法や、既存のプロジェクト用に新しいデータベースを作成する方法はありますか?

私は現在 Visual Studio 2008 で作業していますが、 Visual Studio 201 でもこの問題を経験しています。

23
Sebi

VS2015、2017、およびVS2019の場合、Visual Studioを閉じて、ソリューションと同じフォルダー内の.vsフォルダーを削除します。これには、とりわけインテリセンスデータベースが含まれています(インテリセンスに固有のファイルのみを削除できるはずです(どのファイルを知っている場合)。フォルダ全体を削除すると、ウィンドウレイアウトの構成などが失われることに注意してください。

以前のバージョンの場合は、Visual Studioを閉じてプロジェクトフォルダーに移動します。そこの* .sdfファイルには、intellisenseデータベースが含まれています。このファイルを削除して、Visual Studioでプロジェクトを再度開くと、キャッシュが再構築されます。

Sdfファイルを削除すると、問題が解決しました。

大きなソリューション(主にC++プロジェクト)での作業が耐えられないほど遅くなることがあります。修正するには、ソリューションを閉じて、.SDFファイルを削除する必要があります。その後、再び必要になるまで、約1週間ほどは通常に戻ります。

根本的な原因は、SDFファイルが断片化されることであり、私が行ったxperfプロファイリングによると、VSはデバッグとリリースを切り替えるときに20,000回以上のランダム読み取りを行うことがあります。 SDFファイルをSSDに配置すると問題は解決しますが、必要ではありません。 VSはSDFファイルをより効率的に使用する必要があり、SDF操作をブロックすることはありません。

ソース: https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2255455-fix-the-delete-sdf-file-problem

16
Constantin

VS2017では、相互運用機能を使用してC#からCPPを呼び出すときに、CPP側で何かが変更されているときにこの状況に陥ることがよくあります。コンストラクター引数。

ソリューションのCPPプロジェクトをアンロードして再ロードすると、赤い線を解決できます。

6
Goodies

Visual Studio 2017(およびVisual Studio 2019も同様)の場合は、Visual Studioを閉じ、プロジェクトフォルダーの.vsフォルダーに移動して、.suoファイル以外のすべてのコンテンツを削除してから、Visual Studioを再度開きます。

これにより、設定を失うことなくIntellisenseキャッシュを再構築できます。

2
Aidan

私はVisual Studio 2019を使用していますが、他の機能とともにIntellisenseで問題が発生しています。 Intellisenseがコードの書式設定とともに動作しなくなる前に、ファイルを2〜3回更新することができます。

私が物事を再び機能させることができる唯一の方法は、Visual Studioを再起動することでした、私はインテリセンスフォルダと_.vs_フォルダ全体の両方を削除しようとしましたが、これは問題を解決しませんでした。

私はついに_Track changes_オプションをオフにすることでこれを修正することができました

_Tools->Options->Text Editor->General_。

enter image description here

0
Andy Braham