トラブル対処法

ソリューションやプロジェクトのオープン

参照データベースとIntelliSenseファイルに適切な場所が見つかった

ソリューションを開いたときに「参照データベースと IntelliSense ファイルに適切な場所が見つかりました」として、次のようなメッセージが表示されることがあります。

Visual C++ でソリューション "C:\dir\sample.sln" の参照データベースおよび IntelliSense ファイルを格納する適切な場所が見つかりました。

Visual C++ でフォルダー "C:\dir" が検証されました。以下の理由により、このフォルダーは適切ではありません:
このディレクトリ内の参照データベースは Visual Studio の他のインスタンスで開かれているため、再度開くことができませんCOMPUTER_NAME のユーザー USER_NAME が開いています。

C++ 詳細オプションで 'フォールバック位置' が指定されなかったため、Visual C++ は一時ディレクトリの使用を試みています。

Visual C++ でフォルダー "C:\**\Temp\VC++\sample-**" が検証されました。以下の理由により、このフォルダーは適切です:
ディレクトリがローカル ドライブ上にあります。

'フォールバック位置' は C++ 詳細オプションで構成できます。

この場所を使用するには、[OK] をクリックします。
このセッションで C++ 参照情報と IntelliSense を無効にするには、[キャンセル] をクリックします。

このとき理由が「他のインスタンスで開かれているため、再度開くことができません」となっているときには、多重起動したVisual Studioで同一のソリューションを開こうとしているのが原因です。よってそれが意図したものではないならばソリューションを開くのを取り消し、すでに開いているソリューションで作業します。

C++参照データベース ファイルでエラー

C++ 参照データベース ファイル C:\ProjectName.sdf を作成または開くときにエラーが発生しました。C++ プロジェクトでは、IntelliSense と参照情報は利用できません。

試せる修正方法:
他のアプリケーションがファイルにアクセスしていないことを確認します。
Microsoft SQL Server Compact 4.0 がインストールされていることを確認します。

この問題が解決しない場合、ファイルを削除してからソリューションを再度開いてください。

多重起動したVisual Studioで同一のプロジェクトを開くと問題のファイルのオープンに失敗し、このエラーが発生します。原因がこれでなければ、問題のファイルにアクセスしているアプリケーションがないか、Process Explorerなどで確認します。

Visual Studio 2015以降ではファイル形式が変更されたため、このエラーは次のように報告されます。

C++ 参照データベース ファイル C:\ProjectName.VC.db を書き込み用に開くことができなかったため、IntelliSense および参照情報は C++ プロジェクトに利用できません。

ソリューション ディレクトリが読み取り専用である場合、他の機能にも影響が及びます。

プロジェクトの既定のXML名前空間は、MSBuildのXML名前空間でなければならない

プロジェクトの既定の XML 名前空間は MSBuild の XML 名前空間でなければなりません。プロジェクトが MSBuild 2003 形式で作成されている場合、xmlns="http://schemas.microsoft.com/developer/msbuild/2003" を <Project> 要素に追加してください。プロジェクトが古い 1.0 または 1.2 形式で作成された場合、MSBuild 2003 形式に変換してください。 C:\ProjectName.csproj

Visual Studio 2017以降のプロジェクトを、Visual Studio 2015で開くと発生します。これは指示通り、Project要素にxmlns="http://schemas.microsoft.com/developer/msbuild/2003"の属性を追加します。

ファイルのオープン

ヘッダーの停止はマクロまたは#ifブロックには配置できない

PCH 警告: ヘッダーの停止はマクロまたは #if ブロックには配置できません。IntelliSense PCH ファイルは生成されませんでした。 (PCH Warning: header stop cannot be in a macro or #if block. An intellisense PCH file was not generated.)」

ファイルの先頭に#pragma onceを記述します。PCH Warning: header stop cannot be in a macro or #if block - Visual C++ 2010 Express SP1 - Stack Overflow

ビュー デザイナーでのクラッシュ

コントロールをビュー デザイナーで表示しようとしたときに、Visual Studioがクラッシュすることがあります。これはそのコントロールか、それに依存するほかのコントロールが読み込まれるときに実行されるコードが原因となることがあります。

問題の解決にはOnLoad()やOnHandleCreated()内のコードを一時的にコメントアウトし、原因を特定したうえで対処します。

デバッグ

vshost32.exeは動作を停止

デバッグ実行時、「vshost32.exe は動作を停止しました」「問題が発生したため、プログラムが正しく動作しなくなりました。プログラムは閉じられ、解決策がある場合は Windows から通知されます。」として強制終了させられ、デバッグに失敗することがあります。

C#からC++のDLLなどを参照している場合、そこで例外が発生したときにこの問題が発生します。そのような状況ならば、オプションの【デバッグ → 全般】の[ネイティブ互換モードの使用]をチェックすることで解決できます。c# - vshost32.exe has stopped working when I call the ShowDialog method of OpenFileDialog - Stack Overflow

アプリケーションはブレーク モード

デバッガでのブレーク時に「アプリケーションはブレーク モードになっています (The application is in break mode)」「お使いのアプリはブレーク状態になりましたが、すべてのスレッドが外部コード (通常はシステム コードまたはフレームワーク コード) を実行していたため、表示されるコードはありません。」として、詳細を確認できないことがあります。

この場合にはオプションの【デバッグ → 全般】の[マイ コードのみを有効にする]のチェックを外します。

原因不明のエラー

発生原因の切り分けのため、Visual StudioをSafeModeで起動してみます。さらにLogを記録し、動作を検証します。

MSDN (Microsoft Developer Network) から検索