[VisualStudio]VisualStudio2019でリモートデバッグを行う(C#の場合)

**もくじ**
→https://qiita.com/tera1707/items/4fda73d86eded283ec4f

**リモートデバッグ関連**
- [VisualStudio2019でリモートデバッグを行う(C#の場合)](https://qiita.com/tera1707/items/5d70ebf96d03c1042b9e)
- [VisualStudio2019でリモートデバッグを行う(C++の場合)](https://qiita.com/tera1707/items/9c6d6960c295dc3ad86f)
- [リモートデスクトップに必要な設定](https://qiita.com/tera1707/items/84f0b487da73d20dafe6)
- [リモートデバッグするときのIPアドレス変更やインストール、設定等々一気にやってしまいたい](https://qiita.com/tera1707/items/4483b67bae0db0f9c783)

# やりたいこと
開発作業をしているPCと、プログラムを動かしたい本番用PCが別の時に、普段開発用PCでやっているような、Breakをはったりステップ実行をしたりといったデバッグ作業を、本番用PCでもやりたい。
でも本番用PCにVisualStudioを入れたくない。(入れることができない)

# 前提
リモートデバッグやファイル共有ができるように、同じネットワークに入るようにIPアドレス等を設定しておくこと(もちろん配線も)。
例えば、下記のような設定。

|PC|IPアドレス|ネットマスク|
|:--|:--|:--|
|作業PC|192.168.1.101|255.255.255.0|
|対象PC|192.168.1.111　|255.255.255.0|

# やり方
リモートデバッグをすることで実現する。

# 手順
### 1.リモートデバッグツールをダウンロード
下記のページを開く。
https://docs.microsoft.com/ja-jp/visualstudio/debugger/remote-debugging?view=vs-2019

その中の、Remotetoolsのリンクをクリックし、飛ぶ。(今回はVisualStudio2019を使うので、2019を押す。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/1055ab12-bc60-0bbd-d701-5d320f8abe94.png)

「ダウンロード」のページが開くので、下の方に行く。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/e4d6c07c-a2ad-bf00-a73f-313088b09403.png)

「VisualStudio2019のツール」を選択し、開く。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/6c4dffb0-3fbd-2df2-0c6f-3de006231220.png)

「Remote Tools for VisualStudio2019」の「ダウンロード」を押す。
※今回はx64でデバッグしたいので、x64を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/60d8962b-11ca-5d7e-64ed-93f5968a55f4.png)

ダウンロードされてきた「vs_remotetools.exe」を、(USBメモリか何かで)デバッグしたい本番用のPCにもっていく。

### 2.[本番用PC]リモートデバッガのインストール
「vs_remotetools.exe」を、デバッグしたい本番用のPCで実行する。
インストール画面が出てくるので、言われたとおりにインストールする。

インストールしたら、メニューに「Remote Debugger」が追加されていることを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/bfc802d1-30da-b01f-4479-59446c9bc2b6.png)

### 3.[本番用PC側]プログラム配置用のフォルダの作成と共有
本番用PCに、できたプログラム(exeなど)を配置するフォルダを作成する。
まず、本番用PCで、どこでもよいのでフォルダを作成する。(ここでは、「RemoteTest」というフォルダにする)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/c96572c9-376c-31e3-db15-76815e3cc690.png)

右クリック > プロパティ を開き、[共有]タブ > [詳細な共有]ボタンを押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/62ac7bdc-515a-b627-ec03-62b96c5d4294.png)


[詳細な共有]ダイアログが表示されるので、
[このフォルダーを共有する]にチェックを入れ、[アクセス許可]ボタンを押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/e9cd1f88-fefb-9a87-a7fd-79ea1666d53f.png)

[<フォルダ名>のアクセス許可]ダイアログが表示されるので、
[フル コントロール]の[許可]にチェックを入れ、OKを押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/587f89a6-67ae-4bf1-7725-dff863efde67.png)

これで、開発用PCから、本番用PCのプログラムを置きたいフォルダにアクセスできるようになった。


### 4.[開発用PC]デバッグしたいプロジェクトの設定
デバッグしたいプロジェクトのプロジェクト設定を開き、その中の[ビルド]を選択する。

[出力パス]に、先ほど作成した本番用PCの共有フォルダパスを指定する。
(おそらく、`\\<IPアドレス>\<フォルダ名>` になるはず)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/21b92f71-b1a9-65a5-0c2c-4ad129146f8d.png)

さらに、[デバッグ]を選択する。
その中の[リモートコンピューターを使用する]にチェックを入れ、よこのBoxに本番用IPアドレスを入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/beeee51b-e242-bd9b-2ae0-3d4d4dd8590f.png)

これで、プロジェクトの設定は完了。

### 5.[本番用PC]Remote Debuggerの実行
先ほど本番用PCにインストールしたRemote Debuggerを実行する。下記のような画面が起動する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352601/c47a1a0c-6f53-f137-fe26-f474b4d5843d.png)

### 6.[開発用PC]プログラムをデバッグ実行する
VisualStudio側で、作成したプロジェクトで、デバッグ実行(F5)を実施する。
先ほど本番用PCで立ち上げたリモートデバッガーに「〇〇〇〇が接続しました」というメッセージが表示され、その後プログラムが実行される。
そこで、ブレークを貼ったりステップ実行したりすることができる。


# 参考
リモートデバッグ
https://docs.microsoft.com/ja-jp/visualstudio/debugger/remote-debugging?view=vs-2019

ダウンロードページ
https://visualstudio.microsoft.com/ja/downloads/?rr=https%3A%2F%2Fdocs.microsoft.com%2Fja-jp%2Fvisualstudio%2Fdebugger%2Fremote-debugging%3Fview%3Dvs-2019