前言

在前几个Visual Studio Code更新中发现有一个重要得特性,就是nodejs可以使用VS Code在WSL中进行Debug了(WSL是指Win10中的Linux子系统),之前写过一篇文章是使用SSH对Linux环境进行Debug,此时的想法就是如果可以在WSL中直接对程序进行调试的话,那么对于开发人员这项功能将是在Windows中最好连接Linux环境的开发环境了,而且由于Windows子系统的“原理”,所有子系统中的进程将与系统进程运行在物理主机上,所以可以断定调试的“速度”也是非常快速的。

先决条件

要想在Visual Studio Code中调试.NET Core程序,并运行在Windows Subsystem for linux(WSL)中,需要一些先决条件,这些条件包括:

  • 需要将Windows更新到最新的创新者版本(版本号为:1709)
  • 在WSL中安装.NET CORE SDK (2.0.2)
  • 最新版本的VS Code和C#扩展 (Microsoft C# extension)

之所以要更新Windows系统到最新的创新者版本,主要是因为之前版本的Windows不能安装Ubuntu子系统的最新版本。之前的版本为14.04,要想使用新的特性,我们要将Ubuntu子系统升级到16.04版本。

解决问题

安装WSL

接下来我们先使用bash命令,确定一下Windows上安装的Ubuntu子系统的版本:

~$ cat /etc/os-release | grep  -i version

VERSION="16.04.2 LTS (Xenial Xerus)"
VERSION_ID="16.04"
VERSION_CODENAME=xenial

但是如果已经安装过WSL后再升级Windows,那样Ubuntu子秕的版本还会是14.04,所以需要重新安装一下Ubuntu子系统,命令如下:

lxrun /uninstall /full
lxrun /install

如果你已经是最新版本的创新者的Windows,此时Ubuntu子系统的版本也将升级到16.04。

安装.NET CORE SDK

只需要到https://www.microsoft.com/net/core#linuxubuntu上找到,对应16.04版本安装方式,就可以顺利的安装了,与Ubuntu系统的真机安装体验一致。

安装调试器

先要将调试器下载到子系统中运行bash,再运行如下命令:

sudo apt-get install unzip
curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg

下载过程可能会很慢长,主要取决于是否FQ。下载后的文件会在当前目录的~/vsdbg/vsdbg。我的下载目录为:/home/maxzhang/vsdbg/vsdbg

launch.json

添加调试启动的配置:

{
"name": ".NET Core WSL Launch",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "/mnt/f/dotnetcoreapps/DebugOnWSL/DebugOnWSL/bin/Debug/netcoreapp2.0/DebugOnWSL.dll",
"args": [],
"cwd": "/mnt/f/dotnetcoreapps/DebugOnWSL/DebugOnWSL",
"stopAtEntry": false,
"console": "internalConsole",
"pipeTransport": {
"pipeCwd": "",
"pipeProgram": "C:\\Windows\\System32\\bash.exe",
"pipeArgs": [
"-c"
],
"debuggerPath": "/home/maxzhang/vsdbg/vsdbg"
}
}

具体路径需要按自己的需要进行修改,然后就可以按F5进行调试了。期待VS中也能拥有这样的开发体验。

推广

GitHub:https://github.com/maxzhang1985/YOYOFx 如果觉还可以请Star下, 欢迎一起交流。

.NET Core 开源学习群:214741894

微软为.NET程序员带来了最优的跨平台开发体验-WSL的更多相关文章

  1. 【转】.NET程序员提高效率的70多个开发工具

    原文:.NET程序员提高效率的70多个开发工具 工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为各ASP.NET 开发者介绍一些高效实用的工具,涉及SQL 管理,VS插件 ...

  2. 每个Java程序员需要了解的8个Java开发工具

    每个Java程序员需要了解的8个Java开发工具 Java是计算机应用程序编程语言,被广泛用于创建Web应用.服务器处理.用户端的API开发乃至数据库等多个领域.下面列出了8个有助于你开发Java应用 ...

  3. 【转】微信小程序给程序员带来的可能是一个赚钱的机遇

    自上周被微信小程序刷屏之后,这周大家都在谈微信小程序能够带来哪些红利的话题,其实我想从程序员的角度来谈谈,带给我们程序员来的红利,或许是我们程序员创业或者赚钱的机遇. 其实我从<作为移动开发程序 ...

  4. [Linux] PHP程序员玩转Linux系列-搭建代码开发环境

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的 ...

  5. 最初程序员的思维“修炼”之四——Android平台开发的“强制关闭”解决思路

    我和我的朋友参加一个比赛——物联网应用技能大赛,这个大赛所要求的技能有,硬件技术,Android平台开发技术,.NET平台开发技术,所以这是一个团队合作的比赛,基本上没有人能同时掌握这三种技术(在校生 ...

  6. .NET程序员提高效率的70多个开发工具

    工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为各ASP.NET 开发者介绍一些高效实用的工具,涉及SQL 管理,VS插件,内存管理,诊断工具等,涉及开发过程的各个环节, ...

  7. 24岁程序员, 一个人撑起App开发项目

    "疲惫吾心,怎样躲藏! 四处荒芜,怎话忧伤?"临近中秋,看到艾瑞斯的QQ签名,无尽的伤感.这个年仅24的青年.连续3年没有回家了,近期一个月总是失眠,没有家人的陪伴,就连女朋友都没 ...

  8. 后端程序员之路 50、Go语言开发环境

    Downloads - The Go Programming Languagehttps://golang.org/dl/ - windows下的开发环境    - 下载go1.8.1.windows ...

  9. 微信小程序将带来web程序员的春天!

    微信之父张小龙在年初那次演讲中曾表示:“我自己是很多年的程序员,我觉得我们应该为开发的团体做一些事情.”几个月后,微信正式推出微信应用号(即微信小程序)在互联网中掀起又一波热潮. 过去,对于很多开发者 ...

随机推荐

  1. Supervised Learning and Unsupervised Learning

    Supervised Learning In supervised learning, we are given a data set and already know what our correc ...

  2. 工具:Entity Framework Profiler

    使用方式: 1.项目中添加引用:EntityFrameworkProfiler.Appender 2.应用程序启动方法中添加下面一行代码: HibernatingRhinos.Profiler.App ...

  3. Windows环境下多线程编程原理与应用读书笔记(3)————Windows环境中的多线程实现(3)

    纤程 纤程(fiber): 相当于用户级别的线程或轻进程.纤程由Win32库函数支持,对核心是不可见的.纤程可以通过SwitchToFiber显示至另一合作纤程,以实现合作纤程之间的协同.线程是在Wi ...

  4. Pseudoforest(伪最大生成树)

    Pseudoforest Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total ...

  5. 原生JS实现图片放大镜插件

      前  言 我们大家经常逛各种电商类的网站,商品的细节就需要用到放大镜,这个大家一定不陌生,今天我们就做一个图片放大镜的插件,来看看图片是如何被放大的…… 先看一下我们要是实现的最终效果是怎么样的  ...

  6. Windows下caffe的配置和调用caffe库(二)

    二. Caffe库的调用: 新建空白项目,将配置管理器更改为x64运行方式.(release和Debug均可). Debug配置: 1)      包含目录: D:\caffe-master\incl ...

  7. Android 开发笔记___滚动视图__scroll view

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  8. Python基础-注释-变量赋值

    一.注释 # 注释 \n 行分隔符 \ 继续上一行 '''   *** ''' 多行注释 二.基本规则 : 分开代码块(组)   头$尾 缩进块  语句代码块  用缩进深度区分 空行     用于分割 ...

  9. 按键精灵 vbs 获取网页源码 xp系统被拒绝

    如下面的代码所示,获取新浪博客某个指定网页的源码 verurl = "http://blog.sina.com.cn/s/blog_9ea1db7b0101o7ch.html?" ...

  10. JAVAWEB开发环境搭建,附JDK开发环境一键配置批处理bat

    JDK配置: CLASSPATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar   JAVA_HOME: C:\Program Files\J ...