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 リモート ツールをインストールします。
バージョン | Link | メモ |
---|---|---|
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 ドキュメントのダウンロード ページ |
バージョン | Link | メモ |
---|---|---|
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 を使用します。これは、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] を選択し、リモート デバッグの設定を構成します。
それ以外の場合、 [デバッグ] タブでリモート デバッグ設定を直接変更します。
** [作業ディレクトリ]** テキスト ボックスが空であることを確認してください。[リモート コンピューターを使用する] をオンにして、テキスト ボックスに「yourmachinename:port」と入力します。 (ポート番号がリモート デバッガー ウィンドウに表示されます。ポート番号は、Visual Studio のバージョンごとに 2 ずつ増分されます)。
この例では、以下を使用します。
Visual Studio 2022 の MJO-DL:4026
MJO-DL:4024 (Visual Studio 2019)
[ネイティブ コードのデバッグを有効にする] がオフであることを確認します。
プロジェクトをビルドします。
Visual Studio コンピューター上の Debug フォルダー (<source path>\MyWPF\MyWPF\bin\Debug) と同じパスのフォルダーをリモート コンピューター上に作成します。
上で作成した実行可能ファイルを、Visual Studio コンピューターから、リモート コンピューター上の新しく作成したフォルダーにコピーします。
注意
コードを変更したり、リビルドを行ったりしないでください (行うと、このステップを繰り返す必要があります)。 リモート コンピューターにコピーした実行可能ファイルは、ローカルのソースとシンボルに正確に一致している必要があります。
プロジェクトは手動でコピーすることも、XCopy、Robocopy、PowerShell、その他のオプションを使用することもできます。
ターゲット コンピューターでリモート デバッガーが実行されていることを確認します (実行されていない場合は、[スタート] メニューでリモート デバッガーを検索します)。 VS 2022 のリモート デバッガー ウィンドウは次のような外観です。
Visual Studio でデバッグを開始します ([デバッグ] > [デバッグの開始]、または F5 キー)。
メッセージが表示されたら、リモート コンピューターに接続するためのネットワーク資格情報を入力します。
必要な資格情報は、ネットワークのセキュリティ構成によって異なります。 たとえば、ドメイン コンピューターでは、ドメイン名とパスワードを入力できます。 ドメイン以外のマシンでは、マシン名と有効なユーザー アカウント名 (MJO-DL\name@something.com など) を正しいパスワードと共に入力します。
WPF アプリケーションのメイン ウィンドウがリモート コンピューター上で開いていることを確認できるはずです。
必要に応じて、ブレークポイントにヒットするためのアクションを実行します。 ブレークポイントがアクティブになっていることを確認できるはずです。 ブレークポイントがアクティブでない場合、アプリケーションのシンボルが読み込まれていません。 再試行してもうまくいかない場合、シンボルの読み込みと、それらのトラブルシューティング方法については、「シンボル ファイルおよび Visual Studio のシンボルの設定について」を参照してください。
Visual Studio コンピューターで、実行がブレークポイントで停止したことを確認できるはずです。
アプリケーションで使用する必要がある、コード以外のファイルがある場合は、Visual Studio プロジェクトに含める必要があります。 追加のファイル用のプロジェクト フォルダーを作成します (ソリューション エクスプローラーで、[追加] > [新しいフォルダー] をクリックします)。 次にファイルをそのフォルダーに追加します (ソリューション エクスプローラーで、[追加] > [既存の項目] の順にクリックしてからファイルを選択します)。 ファイルごとの [プロパティ] ページで、[出力ディレクトリにコピー] を [常にコピーする] に設定します。
Windows で .NET MAUI アプリをリモート デバッグする
.NET MAUI アプリはパッケージ化されたアプリであり、デプロイするときは、リモート マシンにコピーするだけでなく、登録する必要があります。 リモート デバッグするには、パッケージ化されていないバージョンのアプリをデプロイできます。
リモート デバッグするには、次のいずれかの方法を使います。
Windows用のパッケージ化されていない .NET MAUI アプリの CLI を使用した発行に関する記事で説明されている手順を使って、アプリをパッケージ化されていないアプリとしてリモート デバイスに発行した後、この記事の手順のようにしてリモート デバッグします。 (アプリをコピーする手順をスキップします)。
プロジェクトのデバッグ起動プロファイルの作成手順も含めて、この記事の手順のようにします。 デバッグを開始する前に、次に示すように、launchSettings.json ファイルを手動で編集し、 commandName
Project
値をMsixPackage
に置き換えます。"Remote Profile": { "commandName": "MsixPackage", "remoteDebugEnabled": true, "remoteDebugMachine": "170.200.20.22", "authenticationMode": "None" }
デバッグを始めると、このメソッドは最初にパッケージ化されていないバージョンのアプリをデプロイして起動します。
Note
値を
MsixPackage
に変更した後は、デバッグ起動プロファイルのダイアログ ボックスで launchSettings.json を編集できなくなります。
リモート シンボルを使用したデバッグのセットアップ
Visual Studio コンピューターで生成したシンボルを使用して、コードをデバッグすることができます。 リモート デバッガーのパフォーマンスは、ローカル シンボルを使用すると大幅に向上します。 リモート シンボルを使用する必要がある場合、リモート マシン上のシンボルを探すように、リモート デバッグ モニターに指示する必要があります。
次の msvsmon コマンドライン スイッチを使用して、マネージド コードにリモート シンボルを使用できます: Msvsmon /FallbackLoadRemoteManagedPdbs
詳細については、リモート デバッグのヘルプ (リモート デバッガーのウィンドウで F1 キーを押すか、[ヘルプ] > [使い方] の順にクリックします) を参照してください。