trsing’s diary

勉強、読んだ本、仕事で調べたこととかのメモ。

Visual Studio リモートデバッグメモ

リモートデバッグとは

別のコンピューターに配置されている Visual Studio アプリケーションをデバッグすることができます。

docs.microsoft.com

実行環境は本番PCで、デバッグは開発PCで。手間も大してかからない。

手順

詳しくは下記URL参照

docs.microsoft.com

qiita.com

実施例

環境

開発PC:Windows 10、Visual Studio 2015 Pro、IP:192.168.0.1/255.255.255.0
本番PC:Windows Server 2019、IP:192.168.0.2/255.255.255.0
ハブ経由で接続
C#アプリで確認。.Net Framework 4.6.2

やったこと

  • 開発PCでmsvsmon.exeがあるフォルダ(C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x64\)を共有フォルダに設定
  • 本番PCで↑のmsvsmon.exeを実行
  • 本番PCでデスクトップにRemoteTestフォルダを作成して共有フォルダに設定
  • 開発PCのVisualStudioでプロジェクトのプロパティを設定
     ビルド
      出力パス:\\192.168.0.2\RemoteTest\
     デバッグ
      リモートコンピュータを使用する:192.168.0.2
  • デバッグ実行(本番PCのアカウント・パスワードが必要)

生じたトラブル

デバッグの実行でエラーが出る

プラットフォームターゲットとmsvsmonを合わせたら実行できた

x86\msvsmon.exe、プラットフォームターゲットx86:実行できた
x86\msvsmon.exe、プラットフォームターゲットx64:エラー「この要求はサポートされません」
x64\msvsmon.exe、プラットフォームターゲットx86:エラー「デバッグ対象とデバッガーが互換性のないプラットフォームにあるので、操作に失敗しました」
x64\msvsmon.exe、プラットフォームターゲットx64:実行できた

変数の参照ができない

Visual Studioのツール→オプション→「デバッグ:全般」の「従来のC#およびVBの式バリュエータを使用する」にチェック で参照できるようになった