3

有没有办法在另一台计算机上远程上传、运行和调试应用程序?

我知道您可以将 Visual Studio 远程调试器附加到在远程计算机上运行的应用程序,但我正在寻找一种完全自动化的方法。

我正在构建一个家庭自动化系统,如果我能在 Visual Studio 中获得某种插件,让我在 VS 中按 F5,然后应用程序将正常构建并发送到我的服务器 PC 和在那里运行(附加远程调试)。

问题是我的笔记本电脑没有我的服务器 PC 拥有的所有硬件。我可以手动将它连接到我的笔记本电脑,但老实说,这样做 2 到 3 次之后会变得很无聊......此外,两台计算机之间的串行端口名称和其他一些硬件相关的东西是不同的。这意味着我对每个系统都有不同的配置。

最后但并非最不重要的一点,我几乎可以称其为最重要的事情哈哈:我不想躺在床上写代码,或者坐在客厅里吃披萨,同时调试我的家庭自动化。现在我被 3 根 USB 线、一根音频线和一根连接到电视的 HDMI 线绑在桌子上……这有点搞砸了。

远程调试是存在的……我们已经上传文件至少10年了……我们以前有程序运行过其他程序……请告诉我有人发明了这个系统!

顺便提一句。我可以通过 Teamviewer 与应用程序进行交互。我只是不想经历“F5 -> Teamviewer -> 在本地电脑上做事 -> 在远程电脑上做事 -> 测试软件 -> 查找错误 -> 重复”过程。

如果我可以登录并且程序已经启动并运行,那就太好了。此外,如果我可以让 STOP 按钮停止远程 PC 上的软件,那就太棒了,我什至可以考虑将六瓶装的啤酒送给让这成为可能的人哈哈。

4

1 回答 1

3

我不知道存在这样的产品,但是您可以做很多事情来使平凡的任务变得更加容易。

1)将您的开始操作从更改Start ProjectStart 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(按回车)然后按您的进程的字母滚动到它(回车)

走开!

不理想,但比许多手动步骤要好得多。

于 2012-08-12T18:28:22.363 回答