Visual Studio 2010 で共有アドインにブレークポイントを設定すると、デバッグ実行時に設定したブレークポイントに止まらない

適用対象: Visual Studio Premium 2010Visual Studio Professional 2010Visual Studio Ultimate 2010

現象


Microsoft Visual Studio 2010 で、共有アドインにブレークポイントを設定すると、デバッグ実行時に設定したブレークポイントに止まりません。

原因


この現象は、.NET Framework 4.0 が、既定のデバッガーとして指定されることにより、CLR: Common Language Runtime (共通言語ランタイム) が 4.0 のまま、対象プロセスをデバッグしようとするために発生いたします。

回避策


この現象を回避するには、対象プロセス内にロードされる CLR のバージョンを CLR 4.0 から CLR 2.0 に明示的に変更してください。



ここでは、例として Excel での変更手順を説明します。
  1. VisualStudio2010 の [ソリューション エクスプローラー] 画面で、[ソリューション "プロジェクト名"] を右クリックし [追加] をクリックして [既存のプロジェクト] をクリックします。
  2. Excel.exe のパスを設定して、Excel を既存プロジェクトとして追加します。
  3. 追加された Excel のアイコンを右クリックして、[スタートアッププロジェクト] に設定します。
  4. 追加された Excel のアイコンを右クリックして、[プロパティ] を開き、[デバッガーの種類] から、[マネージ(v2.0、v1.1、v1.0)] をクリックします。
  5. 同じプロジェクト名のアドインがインストールされている場合は、一旦削除します。
  6. ソリューションをビルドします。
  7. ソリューションを デバッグ実行します。
  8. ブレークポイントを設定し、ブレークポイントで実行が止まることを確認します。

状況


マイクロソフトでは、この問題について現在調査中です。詳細については、わかりしだいこの資料に掲載する予定です。

詳細


問題の再現手順

  1. VisualStudio2010 と Office 2007 もしくは Office 2010 をインストールした環境を用意します。
  2. プロジェクトを既定のまま (target の .NETFramework のバージョンが 4.0 のまま) 新規作成します。
  3. [その他のプロジェクトの種類]、[機能拡張]、[共有アドイン] の順にクリックし、ウィザードにしたがって共有アドインを作成します。
  4. 言語の設定で VB.NET をクリックし、アプリケーション ホストの設定では、Microsoft.Excel をクリックします。(ここでは、Excel を一例として説明します。)
  5. [ホストアプリケーションの読み込み時にアドインを読み込む] のチェックをオンにします。
  6. 作成した共有アドイン名のプロパティ画面を開いて、[デバッグ] タブをクリックし、[外部プログラムの開始] のチェックをオンにして、Excel.exe へのパスを設定します。

    例 : C:\Program Files\Microsoft Office\Office12\Excel.exe
  7. Connect.vb ファイルの任意の場所に、ブレークポイントを設定し、ブレークポイントで止まることを確認します。
  8. 再度共有アドイン名のプロパティ画面を開いて、[コンパイル] タブをクリックし、[詳細コンパイルオプション] をクリックして、[コンパイラの詳細設定] 画面を表示し、対象のフレームワークのバージョンで [.NETFramework 3.0] をクリックします。
  9. プロジェクトを開き直し、ソリューションを再ビルドします。
  10. Connect.vb ファイルの任意の場所にブレークポイントを設定します。

結果

ブレークポイントで実行プロセスが止まりません。