使用 SSH 在 Linux 上远程调试 .NET Core 实例 演示
必备条件
在 Visual Studio 计算机上,需要安装ASP.NET 和 web 开发工作负荷或 .net Core 跨平台开发工作负荷。
在 Linux 服务器上,需要安装 SSH 服务器,并将其解压缩,并安装 wget。 例如,在 Ubuntu 上,可以通过运行以下内容来实现此目的:
sudo apt-get install openssh-server unzip curl yum install openssh-server
生成并部署应用程序
准备应用程序以进行调试:
-
请考虑在生成应用程序时使用调试配置。 调试零售编译的代码(发布配置)比调试编译的代码更难。 如果需要使用 Release 配置,请先禁用仅我的代码。 若要禁用此设置,请选择 "工具" > 选项" > 调试",然后取消选中 "启用仅我的代码"。
-
请确保将项目配置为生成可移植的 pdb (这是默认设置),并确保 PBD 与 DLL 位于同一位置。 若要在 Visual Studio 中配置此项,请右键单击该项目,然后选择 "属性" > 生成 > 高级 > 调试信息"。
在调试之前,可以使用多种方法来部署应用。 例如,你能够:
-
将源复制到目标计算机,并在 Linux 计算机上生成
dotnet build
。 -
在 Windows 上生成应用程序,并将生成项目传输到 Linux 计算机。 (生成项目由应用程序本身、它可能依赖的任何运行库以及 .deps.json文件组成。)
附加调试器
配置计算机后,在 Linux 计算机上启动该应用程序,然后便可以附加该调试器。
-
在 Visual Studio 中,选择 "调试" > "附加到进程 ... "。
-
在 "连接类型" 列表中,选择 " SSH"。
-
将连接目标更改为目标计算机的 IP 地址或主机名。
-
查找要调试的进程。
你的代码在唯一进程名称或名为 dotnet 的进程中运行。 若要查找你感兴趣的进程,请检查 " Title " 列,其中显示了该进程的命令行参数。
在下面的示例中,将在 "附加到进程" 对话框中显示的 SSH 传输上看到远程 Linux 计算机上的进程列表。
-
选择 “附加” 。
-
在出现的对话框中,选择要调试的代码类型。 选择 "托管(.Net Core For Unix) "。
-
使用 Visual Studio 调试功能来调试应用程序。
在下面的示例中,你将看到 Visual Studio 调试器在远程 Linux 计算机上运行的代码的断点处停止。
改造程序我这里用的是控制台这块方便附加时间等待
发布
这些文件考进linux(linux 需要安装 netcore环境 )下面是CenterOS 安装方法
其他系统参考这个官方文档
https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-package-manager-ubuntu-1910
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm sudo yum install aspnetcore-runtime-3.1 sudo yum install dotnet-runtime-3.1
运行
dotnet test.dll
这里会暂停住 我们开始远程连接
打开 vs
这个连接需要下载安装
有时点击查找无法发现 linux (此处很坑)我弄了很久很久很久。。。。。后来发现 不要点击查找
返回 点击 刷新
然后 返回 shell 回车
进入断点 调试开始。