ソリーションにプロジェクトを追加してデバックするには への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 英人  (社会人) 投稿日時 2021/7/28 14:21:45
自己レスすいません。
上記で拡張子 pbpと書いていましたが、pdbの間違いでした。申し訳ありません。
また、

>「このディレクトリにシンボルをキャッシュ」というところに、試しに、
>C:\Program Files (x86)\Microsoft Visual Studio\2019
>を入力して見たところ、現状ブレークポイントもヒットしています。

に.関して勘違いしていた点、気づいた点がありました。
1.C:\Program Files (x86)\Microsoft Visual Studio\2019の直下には、pdb拡張子のファイルは作られません。
2.えー、プロジェクトファイルを作った場所は、C:\Users\・・・\Documents\Visual Studio 2019
でして、上記のディレクトリに関係ありません。勘違いです。
3.したがってProgram Files (x86)\Microsoft Visual Studio\2019以下にはpdb拡張子のファイルは見受けられません。
以上になります。
投稿者 英人  (社会人) 投稿日時 2021/7/27 09:23:11
お世話になります。
プロジェクトを参照するという方法があるのですね。VS2005でもあったのかもしれませんが、使っていませんでした。すごく重くなる気がします。
いろいろと思考錯誤、試行錯誤しておりました。

シンボルをVSが読み込めていない。
シンボルは拡張子pdpのファイルに記載されている。
移設の際はVS2005のプロジェクトフォルダーをそのままコピー(C:\Program Files (x86)\Microsoft Visual Studio\2019)以下にした。
その為、\bin\Debugフォルダーが\2019以下のプロジェクトのホルダー内いにあり、その中にpbpファイルがある。
「オプション」「デバック」「全般」で「マイコードのみを有効にするのチェックを外すと、複数のプロジェクトでブレークポイントがヒットする。

以上を考えて、「オプション」の項目を見ると
「オプション」「デバッグ」「シンボル」という項目が見えたので、
「このディレクトリにシンボルをキャッシュ」というところに、試しに、
C:\Program Files (x86)\Microsoft Visual Studio\2019
を入力して見たところ、現状ブレークポイントもヒットしています。

新しくキャッシュが作られた?
フォルダー以下の\bin\Debug内のpdpが認識できた?
分かりませんが、一応動き出しましたので、解決とさせていただきます。

以前VB6からVS2005に移植しようとして断念し、それから何年だろう。
VS2005で数十のプログラムを作成しており、動かしていたのですが、
さすがに、危機感がありました。
これで先に進める気がしています。ありがとうございました。


投稿者 るきお  (社会人) 投稿日時 2021/7/26 20:48:55
この状況はずばりな解決策を提示することはかなり難しいです。
そのような状況になる原因はいろいろありそうですし、英人さんの環境もよくわからないからです。

とりあえずすぐできることとしては、
他のプロジェクトを参照するときにプロジェクト参照になっているか確認してください。
Visual Studio上で複数のプロジェクトを開いてデバッグするのであれば、DLLに参照設定するのではなく、プロジェクトに参照設定してください。
下記の参照設定画面で左側の「プロジェクト」をクリックしたときに、関連するプロジェクトにチェックが入った状態で表示されれば正しく参照設定できています。



念を入れてゼロから参照関係を設定しなおすには、Visual Studio を新しく立ち上げ、新規プロジェクト作成で「すべての言語」「すべてのプラットフォーム」「その他」でフィルタリングし、「空のソリューション」を作成します。
この空のソリューションに英人さんが開発しているプロジェクトを1つずつ追加して、プロジェクトに対して参照設定をやり直してみてください。

以上はほんの入り口で、これで解決できない可能性も大きいように思います。
私であれば、特に根拠はありませんが、各プロジェクトのプロパティでコンパイルとデバッグの設定を確認します。これが、Visual Studio 2019で新規に作成したプロジェクトと一致しない設定になっているようであれば一致させてみます。

あとは、念のためVisual Studio 2019で簡単に2つのプロジェクトを新規作成し、参照設定してもうまくデバッグできることを確認します。

そして、英人さんの単体のプロジェクトなら通常のデバッグができるのかなど丁寧に確認してみます。おそらく単体のプロジェクトで動作させるために工夫が必要になるはずです。たとえば、クラスライブライのプロジェクトであれば、それを呼び出すための簡単な新規コンソールアプリケーションを作るかもしれません。
投稿者 英人  (社会人) 投稿日時 2021/7/26 13:08:23
自己レスとなります。すいません。
どうやら 「オプション」の「デバック」「全般」にある「マイコードのみを有効にする」にチェックが入っていると、複数のプロジェクト間のデバックができない?ようです。
チェックを外したら、ブレークポイントがヒットしました。
お騒がせいたしました。
何分、VS2005からの乗り換えですので、戸惑っております。当方 年齢59歳。
別件でお聞きしたいこともありますので、よろしくお願いいたします。
投稿者 英人  (社会人) 投稿日時 2021/7/26 10:57:43
お世話になります。
ずっとVS2005を使っておりまして、ようやくMicrosoft Visual Studio Community 2019に移行しようとしています。2005のときに作ったプログラムを移植しようとしたのですが、複数のdll参照がありまして、試したところエラーが発生し、デバックしたいと思いました。
そこでdllを作っているプロジェクトを追加しました。(ソリーションエクスプローラには表示されています。)

メインとなるプログラムでボタンクリックイベントからdllを呼び出しているのですが、
 Private Sub b板取り_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles b板取り.Click
    JW用.TEMP_TXT = JW用.GetPath("トレイ板取り.bat", "トレイ板取り.dat") & "JWC_TEMP.TXT"
・・・
の先頭でブレークポイントを設定してもエラーがでます。

呼び出し先の
 Public Function GetPath(ByVal SerchFile As String, ByVal DatFile As String) As String
・・・
の先頭でブレークポイントを設定してもエラーがでます。
エラー内容は上記呼び出し先のファイル処理なのはわかるのですが、
「アプリケーションはブレークモードになっています」という表示と、
「お使いのアプリはブレーク状態になりましたが、すべてのスレッドが外部コード (通常はシステム コードまたはフレームワーク コード) を実行していたため、表示されるコードはありません」
という画面が出てきて、ブレークポイントが機能していないようです。
ヘルプを見てもますます混乱しております。
どのようにすれば良いのでしょうか。