1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

.NET MAUIのWindows向けリモートデバッグの設定

1
Posted at

.NET MAUIのデバッグでホスト機の環境汚染を避けたいと思って色々調べてみました。どうやら、「リモートデバッグ」という、ほかのWindowsの環境(物理的なものだけでなく仮想マシンも)にデバッガーをアタッチする機能があるそうです。

設定とか翻訳がカオスなMicrosoftのドキュメントと戦ったという内容です。

環境

ホスト機OS Windows 11 Pro
Visual Studio Visual Studio 2022 Community
「ターゲット.NETランタイム」 net9.0
「ターゲット Windows Framework」 10.0.19041.0
仮想マシンソフト Hyper-v
仮想マシンOS 「Windows 11 開発環境」(Win11 Enterpriseの試用版?)

Hyper-vはPro版のWindowsにしかありません。VirtualBoxとかでも行けると思います。
Hyper-vで動くWindowsの開発環境が提供されてます。開発環境向けにセキュリティ設定が緩かったり、MSアカウントの束縛が緩かったりします。

手順

仮想マシン側でやることを、ホスト側でやることをと表記します。

ホ Hyper-vにOSを入れる

このあたりを参考にします。

右ペインのクイック作成より、Windows 11 開発環境を選びます。
image.png

 パスワードの設定

初期状態のユーザにはパスワードが設定されていませんでした。共有ドライブなどで必要になります。SettingsAccountsPasswordより設定します。

仮 共有ドライブを作る

デスクトップ等わかりやすい場所に新しいフォルダを作ります。右クリックプロパティ共有タブ→高度な設定を開きます。許可から"Everyone"に対してフルアクセスを許可します。

ホ 共有ドライブにつなぐ

さっきの共有ドライブに接続します。エクスプローラーから共有ドライブを割り当てる画面を開いて、設定します。
ユーザー名は仮想マシンのユーザー名(デフォルトなら"User")、パスワードはさっき設定したのを入力します。うまくいかなかったら仮想マシンのファイアウォールとか、Hyper-vのスイッチの設定を見直したらいいとは思います。(標準の設定で行けることは確認しましたが、、、)

仮 RemoteToolを入れる

↑のサイトをスクロールしていくとTools for Visual Studioというのがあります。その中のRemote Tools for Visual Studio 2026をダウンロードします。image.png

インストールは特にトラブりませんでした。

ホ デバッグのプロファイルを追加する

プロジェクト右クリックプロパティデバッグ起動プロファイルUIを開く
image.png

作業ディレクトリに共有ドライブ内の空のフォルダを指定します。共有ドライブ割り振られたアルファベットを使わず、** "\(仮想マシンのホスト名)(フォルダ名)"**の形式で入力してください。

リモートマシンを使用するに☑チェックして、リモートマシン名は、仮想マシンのRemote Toolに表示されたホスト名:ポート番号を入力します。
image.png

プロジェクトのプロパティ画面に戻って、出力基本出力パスに、さっきの共有ドライブのフォルダのパスを入力します。
image.png

Visual Studioの緑の▶の再生ボタンのドロップダウンから、さっき作った構成を選びます。

完了

ブレークポイント動きました。すごい。ただXAMLのホットリロードがうまく動かないです、、、

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?