Visual Studio 2012でリモートデバッグ(msvsmon.exe)を使うと開発環境は不要で便利

プログラミング

あるパソコンのVisual Studioで作ったC#のアプリケーションが、別のパソコンやOSでは正常に動作しないことがあります。

例えば、以下のようにWindows 7で作ったC#のアプリケーションをWindows 10 Anniversary Updateが適用されたパソコンではエラーが出るようなケースです。

Windows Anniversary Update (1607) 適用後、Excel出力プログラムでComExceptionが発生
2016年8月2日、マイクロソフトからWindows 10の2回目の大型アップデート「Windows 10 アニバーサリーア...

このようなケースで、エラーの原因を突き止めるために、Windows 10のパソコンにVisual Studioなどの開発環境をインストールするのは大変ですね。

そんな時に便利なのが、Visual Studio のリモートデバッグ(Remote Debugger)機能です。

Visual Studio 2012でリモートデバッグ(msvsmon.exe)を使うと開発環境は不要です。

スポンサーリンク
スポンサーリンク

Visual Studioのリモートデバッガーの使い方

Visual Studioのリモートデバッグ機能の概要は次の通りです。

ws000313

およその流れは次の通りです。

まず、ローカルPCでVisual Studioを使って、C#のアプリケーションをデバッグビルドします。

ビルド後に、その実行ファイル(exeファイル)をローカルPCからリモートPCにコピーします。

リモートPCに、Remote Tools for Visual Studio 2012 Update 4をインストールします。

Remote Tools for Visual Studio 2012 Update 4

Remote Tools for Visual Studio 2012 を使用すると、Visual Studio がインストールされていないコンピューターでリモート デバッグ、リモート テスト、およびパフォーマンス単体テストを行うことができます。

インストーラーは、ARM用、x64用、x86用と3種類あるので使用するパソコンに対応したインストーラーを使います。

VSU4\rtools_setup_arm.exe
VSU4\rtools_setup_x64.exe
VSU4\rtools_setup_x86.exe

これらのプラットフォームの違いは以下をご覧ください。

ARMとx86/x64の違い、シェア、性能比較
プロセッサ(CPU、Central Processor Unit)の話で必ず出てくる単語に「ARM」と「x86」「x64」と...

リモートツールをインストール後にリモートデバッガー(msvsmon.exe)を起動します。

remote-debug

これで、リモートPCはデバッガーからアタッチされるのを待つ状態になります。

次に、リモートPCにて、ローカルPCからコピーした実行ファイルを実行します。

今度は、ローカルPCでVisual Studioから

「デバッグ」⇒「プロセスにアタッチ」

で表示されるダイアログで「修飾子」として、リモートPCを選択します。

もし、同じLANで接続できるようであれば、以下のように修飾子として一覧から選択できます。

もし、修飾子に表示されないようであれば、同じネットワーク上に存在しないなど接続上の問題が疑われます。

ws000305

このまま、リモートPCに資格情報を入力すると、アタッチ可能なプロセスの一覧が表示されるので、該当のプログラムを選択して「アタッチ」します。

これでローカルPCのVisual StudioからリモートPCの実行モジュールのステップ実行が可能となります。

リモートデバッグの注意点

リモートデバッグにおいて以下の注意点があります。

リモート デバイスでデバッグするには:

リモート デバイスと Visual Studio コンピューターがネットワークを介して接続されている、またはイーサネット ケーブルによって直接接続されている必要があります。 インターネットを介したデバッグはサポートされません。

リモート デバイスに開発者ライセンスがインストールされている必要があります。

リモート デバイスがリモート デバッグ コンポーネントを実行している必要があります。インストール中にファイアウォールを構成するために、リモート デバイスの管理者である必要があります。 リモート デバッガーを実行するかリモート デバッガーに接続するために、リモート デバイスへのユーザー アクセスが必要です。

https://msdn.microsoft.com/ja-jp/library/hh441469.aspx

インターネットを介したデバッグは出来ない点は要注意です。

Visual Studioのおすすめ本

私は、Visual Studio 2012をメインに使っていますが、いまやVisual Studio 2015がよく使われているようです。

おすすめできる書籍としては、以下の書籍があります。


作って覚えるVisual C# 2015 デスクトップアプリ入門

プログラミングの無料レッスン体験

約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp

<Codecampの特徴>

1 現役エンジニアによる指導

2オンラインでのマンツーマン形式の講義

3大手企業にも導入されている実践的なカリキュラム

↓無料体験レッスン実施中です。

プログラミングのオンラインスクールCodeCamp