■No103596 (kiku さん) に返信
> ■No103595 (まりもん さん) に返信
>>VB.NETで.NET Frameworkアプリケーション(WinForm、コンソールアプリ)のこととなります。
>>
>>エラー発生時のトレース情報等に開発時のパスを残さないようにしたいため、プロジェクトファイルを編集し
>>PathMapを<PathMap>$(MSBuildProjectDirectory)=/</PathMap>というふうに変更しております。
>>
>>VisualStudio2019まではこの設定でデバッグ実行した場合にブレークポイントで停止するのですが
>>VisualStudio2022では「ブレークポイントは、現在の設定ではヒットしません。このドキュメントのシンボルが読み込まれていません。」となり
>>ブレークポイントが機能しません。
>>オプションの「元バージョンと完全に一致するソースファイルを必要とする」のチェックを外しても同様です。
>>
>>VisualStudio2022にてPathMapを指定した際にブレークポイントを機能させる方法はあるのでしょうか?
>>もしくはブレークポイントを機能させつつトレース情報に開発時のパス情報を残さないようにする他の方法はありますでしょうか?
>
> 試していませんが、Releaseビルドするときのみ
> 上記の設定が効くようにしたら良いのではないでしょうか?
ご返答ありがとうございます。
Releaseビルドのみに適用した場合にDebugビルドでのブレークポイントは効くようになりました。
こちらでいろいろと実験した結果として
<PathMap>$(MSBuildProjectDirectory)=/</PathMap>
とした場合は[デバッグ]⇒[ウインドウ]⇒[モジュール]から見れるシンボルファイルの読み込み状態ではシンボルは読み込まれた状態ですが
パスとして"/"が使われるためかうまく認識していないようです。
試しに
<PathMap>$(MSBuildProjectDirectory)=\</PathMap>
とした場合ですとパスとして正しく認識されるのかブレークポイントが効くようになりました。
Try
Throw New Exception("TEST")
Catch ex As Exception
Console.WriteLine(ex.StackTrace)
End Try
とした場合にもコードの場所にはファイル名のみ(\Form1.vb等)で実際のパス情報は出力されませんでした。
なのでReleaseビルドのみに適用することなく全体的にPathMapを指定しても大丈夫となりました。
|