一、 环境
a) 开发工具:Visual Studio 2019 16.6.2
b) 程序框架:.net core 3.1 ConsoleApp
c) Linux发行版:Kylin
二、 准备工作
a) Linux
- 安装.net core ,根据自己的linux发行版选择相应的即可(Kylin)官方教程:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux
- 安装SSH服务器
输入命令:sudo apt-get install openssh-server unzip curl - 启动SSH服务器
输入命令:sudo /etc/init.d/ssh start
(关闭SSH服务器的命令为:sudo /etc/init.d/ssh stop)
b) Windows
- 创建.net core ConsoleApp 版本为 3.1
- 构建应用程序时,使用调试配置
(为什么要这么设置?见官方文档—Build and deploy the application第一点)
- 修改Debugging information
Properties > Build > Advanced > Debugging Information.
(为什么要这么设置?见官方文档—Build and deploy the application第二点)
c) 预处理
i. 有两种方法进行预处理
- 在Windows上编译
- 在Linux上使用dotnet build进行编译
a) 进入到Solution目录下(包含.sln文件的目录)
b) 输入:ls -al 查看当前文件夹权限
i. 若文件权限都为root 应变更权限为当前用户
输入:chown -R kylin:kylin . (注意有个点 全部文件
的意思) 这里kylin是本机的用户名 需要根据情况进行修改具体见下边的链接
命令参考:
https://www.runoob.com/linux/linux-comm-chown.html
d) 将程序从Windows上移植到Linux上
- U盘拷贝等方法
三、 开始Debug
a) 在windows上使用VS打开程序并设置断点
b) 配置断点信息,使其可以在不同代码间使用(一定要确保当前断点所在的行与linux文件下当前行信息一致)
-
光标放置于断点上,点击Setting
-
点击Location
-
选中Allow the source code to be different from the original
c) 在菜单栏中选择Debug > Attach to Process….
d) 窗口中选择Connection Type为SSH
e) 改变Connection Target为IP地址或者目的主机的主机名
f) 点击Refresh
g) 连接需要输入username 以及 password 这两者都是目的主机的信息
h) 在linux中启动程序
- 进入到Solution的debug目录下 输入:dotnet xxx.dll
i) 搜索栏中搜索dotnet
j) 根据Title选中相应进程
k) 点击Attach连接
l) 选择Managed (.NET Core for Unix)
m) OK