Visual Studio での C# または Visual Basic プロジェクトのリモート デバッグ
別のコンピューターに展開された Visual Studio アプリケーションをデバッグするには、アプリを展開したコンピューターにリモート ツールをインストールして実行し、Visual Studio からリモート コンピューターに接続するようにプロジェクトを構成してから、アプリを実行します。
ユニバーサル Windows アプリ (UWP) のリモート デバッグの詳細については、「インストールされているアプリ パッケージ をデバッグするを参照してください。
必要条件
リモート デバッガーは、Windows 7 以降および Windows Server 2008 Service Pack 2 以降のバージョンの Windows Server でサポートされています。 要件の完全な一覧については、「要件」を参照してください。
手記
プロキシ経由で接続されている 2 台のコンピューター間のデバッグはサポートされていません。 ダイヤルアップ インターネットなどの待機時間の長い接続または低帯域幅の接続、または国/地域間のインターネット経由でのデバッグは推奨されず、失敗したり、許容できないほど遅くなったりする可能性があります。
リモート ツールをダウンロードしてインストールする
Visual Studio コンピューターではなく、デバッグ対象のリモート デバイスまたはサーバーで、次の表のリンクから正しいバージョンのリモート ツールをダウンロードしてインストールします。
- Visual Studio のバージョンのリモート ツールの最新の更新プログラムをダウンロードします。 以前のバージョンのリモート ツールは、以降の Visual Studio バージョンと互換性がありません。 (たとえば、Visual Studio 2019 を使用している場合は、Visual Studio 2019 のリモート ツールの最新の更新プログラムをダウンロードします。このシナリオでは、Visual Studio 2022 用のリモート ツールをダウンロードしないでください)。
- リモート ツールをインストールするコンピューターと同じアーキテクチャでダウンロードします。 たとえば、x64 オペレーティング システムを実行しているリモート コンピューターで x86 アプリケーションをデバッグする場合は、x64 リモート ツールをインストールします。 ARM64 オペレーティング システムで x86、ARM、または x64 アプリケーションをデバッグするには、ARM64 リモート ツールをインストールします。
バージョン | リンク | メモ |
---|---|---|
Visual Studio 2022 | リモート ツール | すべての Visual Studio 2022 バージョンと互換性があります。 デバイスのオペレーティング システム (x86、x64 (AMD64)、または ARM64) に一致するバージョンをダウンロードします。 以前のバージョンの Windows Server では、リモート ツールのダウンロードに関するヘルプについては、「ファイルのダウンロード のブロックを解除する」を参照してください。 |
Visual Studio 2019 | リモート ツール | Visual Studio 2019 のリモート ツールは、My.VisualStudio.com から入手できます。 メッセージが表示されたら、Visual Studio Dev Essentials プログラム 無料で参加するか、Visual Studio サブスクリプション ID でサインインします。 デバイスのオペレーティング システム (x86、x64 (AMD64)、または ARM64) に一致するバージョンをダウンロードします。 以前のバージョンの Windows Server では、リモート ツールのダウンロードに関するヘルプについては、「ファイルのダウンロード のブロックを解除する」を参照してください。 |
Visual Studio 2017 | リモート ツール | Visual Studio 2017 のリモート ツールは、My.VisualStudio.com から入手できます。 メッセージが表示されたら、Visual Studio Dev Essentials プログラム 無料で参加するか、Visual Studio サブスクリプション ID でサインインします。 デバイスのオペレーティング システム (x86、x64 (AMD64)、または ARM64) に一致するバージョンをダウンロードします。 Windows Server で、リモート ツールのダウンロードに関するヘルプについては、「ファイルのダウンロード のブロックを解除する」を参照してください。 |
Visual Studio 2015 | リモート ツール | Visual Studio 2015 のリモート ツールは、My.VisualStudio.com から入手できます。 メッセージが表示されたら、Visual Studio Dev Essentials プログラム 無料で参加するか、Visual Studio サブスクリプション ID でサインインします。 Windows Server で、リモート ツールのダウンロードに関するヘルプについては、「ファイルのダウンロード のブロックを解除する」を参照してください。 |
Visual Studio 2013 | リモートツール | Visual Studio 2013 ドキュメントのダウンロード ページ |
Visual Studio 2012 | リモート ツール | Visual Studio 2012 ドキュメントのダウンロード ページ |
バージョン | リンク | メモ |
---|---|---|
Visual Studio 2019 | リモートツール | すべての Visual Studio 2019 バージョンと互換性があります。 デバイスのオペレーティング システム (x86、x64 (AMD64)、または ARM64) に一致するバージョンをダウンロードします。 Windows Server で、リモート ツールのダウンロードに関するヘルプについては、「ファイルのダウンロード のブロックを解除する」を参照してください。 最新バージョンのリモート ツールについては、Visual Studio 2022 ドキュメントを開きます。 |
Visual Studio 2017 | リモート ツール | すべての Visual Studio 2017 バージョンと互換性があります。 デバイスのオペレーティング システム (x86、x64 (AMD64)、または ARM64) に一致するバージョンをダウンロードします。 Windows Server で、リモート ツールのダウンロードに関するヘルプについては、「ファイルのダウンロード のブロックを解除する」を参照してください。 |
Visual Studio 2015 | リモートツール | Visual Studio 2015 のリモート ツールは、My.VisualStudio.com から入手できます。 メッセージが表示されたら、Visual Studio Dev Essentials プログラム 無料で参加するか、Visual Studio サブスクリプション ID でサインインします。 Windows Server で、リモート ツールのダウンロードに関するヘルプについては、「ファイルのダウンロード のブロックを解除する」を参照してください。 |
Visual Studio 2013 | リモート ツール | Visual Studio 2013 ドキュメントのダウンロード ページ |
Visual Studio 2012 | リモートツール | Visual Studio 2012 ドキュメントのダウンロード ページ |
リモート デバッガーを実行するには、リモート ツールをインストールするのではなく、リモート コンピューターに msvsmon.exe をコピーします。 ただし、リモート デバッガー構成ウィザード (rdbgwiz.exe) は、リモート ツールをインストールする場合にのみ使用できます。 リモート デバッガーをサービスとして実行する場合は、構成にウィザードを使用することが必要になる場合があります。 詳細については、「(省略可能) リモート デバッガーをサービスとして構成する」を参照してください。
手記
- ARM デバイスで Windows 10 以降のアプリをデバッグするには、最新バージョンのリモート ツールで使用できる ARM64 を使用します。
- Windows RT デバイスで Windows 10 アプリをデバッグするには、ARM を使用します。ARM は、Visual Studio 2015 リモート ツールのダウンロードでのみ使用できます。
- ARM64 オペレーティング システムで x64 アプリをデバッグするには、ARM64 リモート ツールと共にインストールされている x64 msvsmon.exe を実行します。
ヒント
一部のシナリオでは、ファイル共有からリモート デバッガーを実行するのが最も効率的な場合があります。 詳細については、「ファイル共有からリモート デバッガーを実行する」を参照してください。
リモート デバッガーを設定する
リモート コンピューターで、の [スタート] メニューから リモート デバッガー を見つけて起動します。
リモート コンピューターに対する管理アクセス許可がない場合は、リモート デバッガー アプリを右クリックし、[管理者 として実行]選択します。 それ以外の場合は、通常どおりに起動するだけです。
管理者として実行されているプロセス、または別のユーザー アカウント (IIS など) で実行しているプロセスにアタッチする場合は、リモート デバッガー アプリを右クリックし、[管理者として実行] 選択。 詳細については、「リモート デバッガーを管理者として実行する」を参照してください。
リモート デバッガーを初めて起動するとき (またはリモート デバッガーを構成する前)、リモート デバッグ構成 ウィザードが表示されます。
ほとんどのシナリオでは、ウィザードの [Windows ファイアウォール の構成] ページに移動するまで、[次の ] を選択します。
Windows Web Services API がインストールされていない場合 (これは、Windows Server 2008 R2 でのみ発生します) は、[インストール] ボタンを選択します。
リモート ツールを使用するネットワークの種類を少なくとも 1 つ選択します。 コンピューターがドメイン経由で接続されている場合は、最初の項目を選択する必要があります。 コンピューターがワークグループまたはホームグループ経由で接続されている場合は、必要に応じて 2 番目または 3 番目の項目を選択します。
次に、[完了] を選択してリモート デバッガーを起動します。
次に、リモート デバッグ の構成を選択してリモート デバッガーを起動します。
構成が完了すると、リモート デバッガーの ウィンドウが表示されます。
これで、リモート デバッガーは接続を待機しています。 表示されているサーバー名とポート番号を使用して、Visual Studio でリモート接続の構成を設定します。
リモート デバッガーを停止するには、[ファイル] >[終了]選択します。 の [スタート] メニューまたはコマンド ラインから再起動できます。
<Remote debugger installation directory>\msvsmon.exe
手記
追加のユーザーのアクセス許可を追加する必要がある場合は、リモート デバッガーの認証モードまたはポート番号を変更する リモート デバッガーを構成するを参照してください。
プロジェクトをリモート デバッグする
デバッガーは、Visual C# または Visual Basic デスクトップ アプリケーションをリモート コンピューターに展開できませんが、次のようにリモートでデバッグすることはできます。 次の手順では、次の図に示すように、MJO-DL 名前のコンピューターでデバッグすることを前提としています。
MyWpf という名前の WPF プロジェクトを作成します。
WPF の代わりに MAUI アプリをリモート デバッグする場合は、「Windows で .NET MAUI アプリリモート デバッグする」を参照してください。
簡単に到達できるコード内のどこかにブレークポイントを設定します。
たとえば、ボタン ハンドラーにブレークポイントを設定できます。 これを行うには、MainWindow.xaml を開き、ツールボックスから Button コントロールを追加し、ボタンをダブルクリックしてそのハンドラーを開きます。
ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] 選択します。
[プロパティ] ページで、[デバッグ] タブを選択します。
.NET Core または .NET 5 以降を対象とする C# プロジェクトの場合、Visual Studio 2022 以降では、デバッグ タブから デバッグ起動プロファイル UI を選択して、リモート デバッグの設定を構成します。
それ以外の場合、.NET Framework の場合は、デバッグ タブでリモート デバッグ設定を直接変更します。
作業ディレクトリ テキスト ボックスが空であることを確認します。
[リモート コンピューターを使用する] をオンにして、テキスト ボックスに「yourmachinename:port」と入力します。 (ポート番号はリモート デバッガー ウィンドウに表示されます。ポート番号は、Visual Studio の各バージョンで 2 ずつインクリメントされます)。
この例では、次を使用します。
Visual Studio 2022 の MJO-DL:4026
MJO-DL:4024 (Visual Studio 2019)
[ネイティブ コードデバッグを有効にする] が選択されていないことを確認します。
プロジェクトをビルドします。
Visual Studio コンピューターの Debug フォルダーと同じパスであるリモート コンピューター上にフォルダーを作成します。<ソース パス>\MyWPF\MyWPF\bin\Debug。
Visual Studio コンピューターからビルドした実行可能ファイルを、リモート コンピューター上の新しく作成したフォルダーにコピーします。
注意
コードに変更を加えたり、再構築したりしないでください (または、この手順を繰り返す必要があります)。 リモート コンピューターにコピーした実行可能ファイルは、ローカル ソースとシンボルと完全に一致している必要があります。
プロジェクトを手動でコピーしたり、XCopy、Robocopy、PowerShell などのオプションを使用したりできます。
リモート デバッガーがターゲット コンピューターで実行されていることを確認します (実行されていない場合は、の [スタート] メニューでリモート デバッガー 検索します)。 リモート デバッガー ウィンドウは次のようになります。
Visual Studio でデバッグを開始します ([デバッグ] > [デバッグの開始]、または F5 キー)。
メッセージが表示されたら、ネットワーク資格情報を入力してリモート コンピューターに接続します。
必要な資格情報は、ネットワークのセキュリティ構成によって異なります。 たとえば、ドメイン コンピューターでは、ドメイン名とパスワードを入力できます。 ドメイン以外のコンピューターでは、正しいパスワードと共に、マシン名と有効なユーザー アカウント名 (MJO-DL\name@something.comなど) を入力できます。
リモート コンピューターで WPF アプリケーションのメイン ウィンドウが開いていることがわかります。
必要であれば、ブレークポイントを達成するためのアクションを取ります。 ブレークポイントがアクティブであることがわかります。 そうでない場合は、アプリケーションのシンボルが読み込まれていません。 再試行してもうまくいかない場合は、シンボルの読み込みとそのトラブルシューティング方法についての情報をシンボル ファイルおよび Visual Studio のシンボルの設定に関する記事で入手してください。
Visual Studio コンピューターでは、ブレークポイントで実行が停止していることがわかります。
アプリケーションで使用する必要があるコード以外のファイルがある場合は、Visual Studio プロジェクトに含める必要があります。 追加のファイル用のプロジェクト フォルダーを作成します (ソリューション エクスプローラーので、[新しいフォルダー 追加] > クリック)。 次に、フォルダーにファイルを追加します (ソリューション エクスプローラーので、[追加] > [既存の項目] をクリックし、ファイルを選択します)。 ファイルごとの [プロパティ] ページで、[出力ディレクトリにコピー] を [常にコピーする] に設定します。
Windows での .NET MAUI アプリのリモート デバッグ
.NET MAUI アプリは、リモート コンピューターにコピーするだけでなく、デプロイ時に登録する必要があるパッケージ アプリです。 リモート デバッグには、パッケージ化されていないバージョンのアプリをデプロイできます。
リモート デバッグには、次のいずれかの方法を使用します。
「CLI を使用して Windows用にパッケージ化されていない .NET MAUI アプリを発行し、この記事の手順に従ってリモート デバッグを行う」で説明されている手順に従って、アプリをパッケージ化されていないアプリとしてリモート デバイスに発行します。 (アプリをコピーする手順をスキップします)。
プロジェクトのデバッグ起動プロファイルを作成する手順など、この記事の手順に従います。 デバッグを開始する前に、launchSettings.json ファイルを手動で編集し、次に示すように、commandName
Project
値をMsixPackage
に置き換えます。"Remote Profile": { "commandName": "MsixPackage", "remoteDebugEnabled": true, "remoteDebugMachine": "170.200.20.22", "authenticationMode": "None" }
デバッグを開始すると、このメソッドは最初にパッケージ化されていないバージョンのアプリをデプロイして起動します。
手記
値を
MsixPackage
に変更すると、[デバッグ起動プロファイル] ダイアログ ボックスで launchSettings.json を編集することはできません。
リモート シンボルを使用したデバッグの設定
Visual Studio コンピューターで生成したシンボルを使用してコードをデバッグできる必要があります。 ローカル シンボルを使用すると、リモート デバッガーのパフォーマンスが大幅に向上します。 リモート シンボルを使用する必要がある場合は、リモート コンピューター上のシンボルを検索するようにリモート デバッグ モニターに指示する必要があります。
次の msvsmon コマンド ライン スイッチを使用して、マネージド コードにリモート シンボルを使用できます。Msvsmon /FallbackLoadRemoteManagedPdbs
詳細については、リモート デバッグのヘルプを参照してください (リモート デバッガー ウィンドウで F1 を押すか、[ヘルプ] > [使用法] クリックします)。