あるパソコンのVisual Studioで作ったC#のアプリケーションが、別のパソコンやOSでは正常に動作しないことがあります。
例えば、以下のようにWindows 7で作ったC#のアプリケーションをWindows 10 Anniversary Updateが適用されたパソコンではエラーが出るようなケースです。
このようなケースで、エラーの原因を突き止めるために、Windows 10のパソコンにVisual Studioなどの開発環境をインストールするのは大変ですね。
そんな時に便利なのが、Visual Studio のリモートデバッグ(Remote Debugger)機能です。
Visual Studio 2012でリモートデバッグ(msvsmon.exe)を使うと開発環境は不要です。
Visual Studioのリモートデバッガーの使い方
Visual Studioのリモートデバッグ機能の概要は次の通りです。
およその流れは次の通りです。
まず、ローカル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
これらのプラットフォームの違いは以下をご覧ください。
リモートツールをインストール後にリモートデバッガー(msvsmon.exe)を起動します。
これで、リモートPCはデバッガーからアタッチされるのを待つ状態になります。
次に、リモートPCにて、ローカルPCからコピーした実行ファイルを実行します。
今度は、ローカルPCでVisual Studioから
「デバッグ」⇒「プロセスにアタッチ」
で表示されるダイアログで「修飾子」として、リモートPCを選択します。
もし、同じLANで接続できるようであれば、以下のように修飾子として一覧から選択できます。
もし、修飾子に表示されないようであれば、同じネットワーク上に存在しないなど接続上の問題が疑われます。
このまま、リモートPCに資格情報を入力すると、アタッチ可能なプロセスの一覧が表示されるので、該当のプログラムを選択して「アタッチ」します。
これでローカルPCのVisual StudioからリモートPCの実行モジュールのステップ実行が可能となります。
リモートデバッグの注意点
リモートデバッグにおいて以下の注意点があります。
リモート デバイスでデバッグするには:
リモート デバイスと Visual Studio コンピューターがネットワークを介して接続されている、またはイーサネット ケーブルによって直接接続されている必要があります。 インターネットを介したデバッグはサポートされません。
リモート デバイスに開発者ライセンスがインストールされている必要があります。
リモート デバイスがリモート デバッグ コンポーネントを実行している必要があります。インストール中にファイアウォールを構成するために、リモート デバイスの管理者である必要があります。 リモート デバッガーを実行するかリモート デバッガーに接続するために、リモート デバイスへのユーザー アクセスが必要です。
インターネットを介したデバッグは出来ない点は要注意です。
Visual Studioのおすすめ本
私は、Visual Studio 2012をメインに使っていますが、いまやVisual Studio 2015がよく使われているようです。
おすすめできる書籍としては、以下の書籍があります。
作って覚えるVisual C# 2015 デスクトップアプリ入門
プログラミングの無料レッスン体験
約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp
<Codecampの特徴>
1 現役エンジニアによる指導
2オンラインでのマンツーマン形式の講義
3大手企業にも導入されている実践的なカリキュラム
↓無料体験レッスン実施中です。
コメント