Win10 Bash/WSL调试Linux环境下的.NET Core应用程序
一、简介
使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter,我们都比较羡慕Mac系统的环境,比如命令行,当然设备也是挺漂亮的。
在新的Win10系统中微软给我们提供了一个基于Ubuntu的Linux子系统(Bash/WSL)。要全用Bash/WSL也比较简单,首先要先打开开发者模式( 设置 → 更新和安全 → 针对开发人员 → 开发人员模式), 然后在控制面板 → 程序 → 启用Windows功能 → Windows Subsystem for Linux (Beta)对Bash功能进行安装即可。
二、配置环境
本文中使用的环境:
开发环境:Win10 、Visual Studio 2017、.NET Core SDK 1.0.1 (Win与Linux子系统保持版本一致)
Bash/WSL中安装.NET Core SDK
1.更新Ubuntu子系统的软件源
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
sudo apt-get update
2.安装.NET Core SDK
sudo apt-get install dotnet-dev-1.0.1
3.安装SSH
子系统间的通信,因为系统不同还是需要安装SSH服务器,unzip和 curl或wget这些组件的。
sudo apt-get install openssh-server unzip curl
安装SSH后,系统并不能访问本机的系统的端口做通信,还需要配置一个SSH服务器的配置文件。
运行如下命令:
sudo nano /etc/ssh/sshd_config
分别找到如下配置项做修改,修改后的内容如下:
UsePAM no
UsePrivilegeSeparation no
PasswordAuthentication yes
修改后,按CTRL+X键退出并按Y键保存文件,回车回车。
最后重启下SSH服务。
sudo service ssh --full-restart
三、调试程序
启动SSH
每次启动Bash进程时都需要重新启动SSH Service
sudo service ssh start
新建程序
打开VS 2017 新建一个控制台应用.NET Core,并进行编译。
附加调试
接着默认运行起程序,然后在VS 2017 打开 调试-> 附加到进程 。
选择连接类型为SSH ,然后连接和目标处 输入 localhost,然后回车,会弹出对话,输入对应的用户名密码(这里的密码是安装Bash/WSL后设置的用户名和密码)。


好了,这样就可以只在Windows上安心的写程序了。
.NET Core 开源学习群:214741894
GitHub:https://github.com/maxzhang1985/YOYOFx 如果觉还可以请Star下, 欢迎一起交流。
Win10 Bash/WSL调试Linux环境下的.NET Core应用程序的更多相关文章
- Linux环境下如何生成core文件
Linux环境下进程发生异常而挂掉,通常很难查找原因,但是一般Linux内核给我们提供的核心文件,记录了进程在崩溃时候的信息.但是生成core文件需要设置开关,具体步骤如下: 1.查看生成core文件 ...
- Linux环境下发布.net core
一.安装Linux环境 1. 安装VM虚拟机和操作系统 VM虚拟工具安装的过程详见:http://blog.csdn.net/stpeace/article/details/78598333.直接按照 ...
- eclipse远程调试Linux环境下的web项目
前提: 远程服务器上的代码和本地的代码同步 第一步 : 配置远程服务器下的startup.sh文件 在第一行添加 : declare -x CATALINA_OPTS="-server -X ...
- Linux环境下段错误的产生原因及调试方法小结(转)
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation F ...
- Linux环境下段错误的产生原因及调试方法小结
转载自http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之 ...
- 【转】【调试技巧】Linux环境下段错误的产生原因及调试方法小结
本文转自:http://www.cnblogs.com/panfeng412/archive/2011/11/06/segmentation-fault-in-linux.html 1. 段错误是什么 ...
- Linux环境下段错误的产生原因及调试方法小结【转】
转自:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之 ...
- 针对 Linux 环境下 gdb 动态调试获取的局部变量地址与直接运行程序时不一致问题的解决方案
基础的缓冲区溢出实践通常需要确定运行状态下程序中的某些局部变量的地址,如需要确定输入缓冲区的起始地址从而获得注入缓冲区中的机器指令的起始地址等.在 Linux 环境下,可通过 gdb 对程序进行动态调 ...
- 转:Linux环境下段错误的产生原因及调试方法小结
源地址:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 补充:http://baike.baidu.com/link ...
随机推荐
- 关于AngularJS学习整理---浅谈$scope(作用域) 新手必备!
作为初次接触 AngularJS的新手,想要深层理解里面的内容短时间还是不可能的,所以标题写了浅谈字样,以下内容是参考各位大神以及相关书籍整理加个人理解,出现错误的地方请大家指正. $scope(作用 ...
- python报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0 解决方案
环境:mac+python 2.7 场景描述:在使用python修改excel内容修改表格内容为中文保存时报以下错误 此时已经设置了utf-8了 但保存时仍然报错错 此时将python中的中文使用un ...
- 《Java从0开始的成长之路》
大纲 这篇博文是我整理寒假一个月来的总结 作用一:主要是方便我以后复习,并尝试对Java虚拟机深度挖掘,希望各位前辈给予指点,我会潜心钻研,只希望水平更进一步. 作用二:闭关锁国终将遭遗弃,希望汇聚网 ...
- Javascript基本概念(一)
JavaScript基本语法: ECMAScript的语法大量借鉴了C以及其他类C语言的语法. ECMAScript中的一切(变量.函数名.操作符)都区分大小写. 标识符: 含义:指变量.函数.属性的 ...
- c#访问存储过程
// 2015/07/04 // 访问存储过程 using System; using System.Collections.Generic; using System.Linq; using Sys ...
- c++ 调用dl里的导出类
来源:http://blog.csdn.net/yysdsyl/article/details/2626033 动态dll的类导出:CPPDll2->test.h #pragma once // ...
- 转:常用的iOS开源库和第三方组件
1.通过CocoaPods安装:
- 前端基本知识(三):JS的闭包理解
JS闭包的理解 一.变量的作用域 二.如何从外部读取局部变量 三.什么是闭包 四.深入理解闭包 五.闭包的用途 六.使用闭包注意情况 七.JavaScript的垃圾回收机制 八.一些思考题 一.变量作 ...
- maven 常用脚本
Maven库: http://repo2.maven.org/maven2/ Maven依赖查询: http://mvnrepository.com/ Maven常用命令: 1. 创建Maven的普通 ...
- 禁止linux被ping
cho "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf sysctl -p 生效 开启ping功能: 删除/ ...