3

別のコンピューターでアプリケーションをリモートでアップロード、実行、およびデバッグする方法はありますか?

リモート コンピューターで実行されているアプリケーションに Visual Studio リモート デバッガーを接続できることは知っていますが、それを行うための完全に自動化された方法を探しています。

私はホームオートメーションシステムを構築しています.VSでF5を押すと、アプリケーションが通常どおり構築され、サーバーPCに送信され、そこで実行します(リモートデバッグが添付されています)。

問題は、サーバー PC が持つすべてのハードウェアがラップトップに搭載されていないことです。手動でラップトップに接続できますが、正直なところ、2〜3回実行すると退屈になります...また、シリアルポート名とその他のハードウェア関連のいくつかは、2台のコンピューター間で異なります。つまり、システムごとに異なる構成を持っているということです。

大事なことを言い忘れましたが、私はそれを最も重要なことと呼んでいます (笑): ホーム オートメーションのデバッグ中に、ベッドに横になってコードを書いたり、リビング ルームに座ってピザを食べたりすることはできません。現在、私は 3 本の USB ケーブル、オーディオ ケーブル、テレビに接続されている HDMI ケーブルで机に縛られています。

リモート デバッグが存在します... 少なくとも 10 年間ファイルをアップロードしています... 以前に他のプログラムをプログラムで実行したことがあります... 誰かがこのシステムを発明したことを教えてください!!!

ところで。Teamviewer を介してアプリケーションを操作しても問題ありません。「F5 -> Teamviewer -> ローカル PC で作業を行う -> リモート PC で作業を行う -> ソフトウェアをテスト -> バグを見つける -> 繰り返す」プロセスを実行する必要はありません。

ログインするだけで、プログラムがすでに起動して実行されていればいいのにと思います。また、リモート PC のソフトウェアを STOP ボタンで停止できるようにできれば素晴らしいと思います。それを可能にした人に 6 パック入りのビールを送ることも検討するかもしれません (笑)。

4

1 に答える 1

3

そのような製品が存在することは知りません、ありふれたタスクをより簡単にするためにできることがいくつかあります。

1) 開始アクションを からStart Projectに変更しますStart External Program

ここに画像の説明を入力

スクリプトrun_remote_process.batを追加します

a) バイナリをリモート/サーバー PC にコピーする
b) remcomを使用して、リモート マシンでプロセスを開始する

コーディング ビット: これを Main エントリ メソッドに追加します。

public static void Main(string[] args)
{
    if(args.Any(arg=>arg=="debug"))
    {
        while (!Debugger.IsAttached)
        {
            Thread.Sleep(100);
        }
        Debugger.Break(); 
    }
}

debugプロセスを開始するときに引数を渡すようにしてください。これにより、アタッチするまでプロセスがハングします。

あとは、Visual Studio を使用してプロセスにアタッチするだけです。キーボード ショートカットを使用して、これをすばやく行うことができます。

Alt-D, P(Enter キーを押します) 次に、プロセスの文字を押して、その文字までスクロールします (Enter キーを押します)

そして離れてください!

理想的ではありませんが、多くの手動手順よりもはるかに優れています。

于 2012-08-12T18:28:22.363 に答える