微软为.NET程序员带来了最优的跨平台开发体验-WSL
前言
在前几个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的更多相关文章
- 【转】.NET程序员提高效率的70多个开发工具
原文:.NET程序员提高效率的70多个开发工具 工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为各ASP.NET 开发者介绍一些高效实用的工具,涉及SQL 管理,VS插件 ...
- 每个Java程序员需要了解的8个Java开发工具
每个Java程序员需要了解的8个Java开发工具 Java是计算机应用程序编程语言,被广泛用于创建Web应用.服务器处理.用户端的API开发乃至数据库等多个领域.下面列出了8个有助于你开发Java应用 ...
- 【转】微信小程序给程序员带来的可能是一个赚钱的机遇
自上周被微信小程序刷屏之后,这周大家都在谈微信小程序能够带来哪些红利的话题,其实我想从程序员的角度来谈谈,带给我们程序员来的红利,或许是我们程序员创业或者赚钱的机遇. 其实我从<作为移动开发程序 ...
- [Linux] PHP程序员玩转Linux系列-搭建代码开发环境
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的 ...
- 最初程序员的思维“修炼”之四——Android平台开发的“强制关闭”解决思路
我和我的朋友参加一个比赛——物联网应用技能大赛,这个大赛所要求的技能有,硬件技术,Android平台开发技术,.NET平台开发技术,所以这是一个团队合作的比赛,基本上没有人能同时掌握这三种技术(在校生 ...
- .NET程序员提高效率的70多个开发工具
工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为各ASP.NET 开发者介绍一些高效实用的工具,涉及SQL 管理,VS插件,内存管理,诊断工具等,涉及开发过程的各个环节, ...
- 24岁程序员, 一个人撑起App开发项目
"疲惫吾心,怎样躲藏! 四处荒芜,怎话忧伤?"临近中秋,看到艾瑞斯的QQ签名,无尽的伤感.这个年仅24的青年.连续3年没有回家了,近期一个月总是失眠,没有家人的陪伴,就连女朋友都没 ...
- 后端程序员之路 50、Go语言开发环境
Downloads - The Go Programming Languagehttps://golang.org/dl/ - windows下的开发环境 - 下载go1.8.1.windows ...
- 微信小程序将带来web程序员的春天!
微信之父张小龙在年初那次演讲中曾表示:“我自己是很多年的程序员,我觉得我们应该为开发的团体做一些事情.”几个月后,微信正式推出微信应用号(即微信小程序)在互联网中掀起又一波热潮. 过去,对于很多开发者 ...
随机推荐
- intelliJ IDEA安装、激活与汉化
1.去intelliJ IDEA 官网下载idea,选择Ultimate版本(非免费版,community免费但功能较少) 2.开始安装 3.选择好路径 4.选择在桌面创建的快捷方式(注意32bit和 ...
- linux云服务器常用设置
前面的话 由于在云服务器上配置自己的网站,将Linux里的常用设置记录如下 更改shell 默认地, ubuntu系统默认的shell是dash,但更常用的shell是bash 通过下面命令可以将da ...
- OpenCV Image Watch 调试插件
昨晚偶然发现vs2012的这个很神奇的插件,对于经常使用opencv的人来说,这个插件无疑是我们的调试神器.今天马上下载试用,感觉超级棒!~以后要想查看图像结果,不用再imshow了! Image W ...
- Android 开发笔记___时间选择器---timePicker
像datepicker一样,也有timepicker. 同样有timepickerdialog 所用到的方法还是一样,监听时间选择器的变化. package com.example.alimjan.h ...
- 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式 [转载]
前言 因为项目中经常会有利用jquery操作dom元素的增删操作,所以会涉及到dom元素的绑定事件方式,简单的归纳一下bind,live,delegate,on的区别,以便以后查阅,也希望该文章日后能 ...
- php header设置页面编码
php header设置页面编码 未分类 PHP 页面编码声明方法详解(header或meta) http://www.jb51.net/article/22501.htm PHP 页面编码声明与用h ...
- Remove Untagged Images From Docker
I've been playing around a lot with docker. It's awesome, and it creates a whole new world of possib ...
- 谷歌浏览器Chrome播放rtsp视频流解决方案
找半天,HTML5的可以支持RTMP 但是无法播放RTSP,flash也止步于RTMP,最后同事推荐了个开源的好东东 VLC ,请教谷歌大神之后,这货果然可以用来让各浏览器(IE activex方式, ...
- Halcon算子翻译——assign
名称 assign-为控制变量分配一个新的值 用法 assign( : : Input : Result) 描述 为控制变量分配一个新的值. 在全文编辑器中,只需用:=就可以进行赋值,例如: u : ...
- 《剑指offer》面试题的Python实现
<剑指Offer>是很多程序员面试前要看的书,但里面的算法都是基于C++实现的,最近用了三周左右时间,用Python完成了里面几乎所有的算法题,由于时间以及个人水平均有限,或许会有部分问题 ...