微软为.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 versionVERSION="16.04.2 LTS (Xenial Xerus)"VERSION_ID="16.04"VERSION_CODENAME=xenial

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

lxrun /uninstall /fulllxrun /install

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

安装.NET CORE SDK

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

安装调试器

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

sudo apt-get install unzipcurl -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

原文:http://www.cnblogs.com/maxzhang1985/p/8001782.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

article之api文档

查 method:get http://127.0.0.1:8000/article 单条 http://127.0.0.1:8000/article/10 method:get 新增 http://127.0.0.1:8000/article method:post 修改 http://127.0.0.1:8000/article/10 method:put 删除 http://127.0.0.1:8000/article/3 method:delete ## 查询所有数据&…

jzoj4672-Graph Coloring【图论,模拟】

正题 题目大意 一张无向图,每条边有一个颜色(红或蓝),可以选择点使得连接的边都取反,求至少要选多个点可以使得所有边的颜色相同。 解题思路 不难发现如果确定所有边的颜色,然后知道一个点的选择后就可以知道整个联通图的选择。…

Redis 性能问题分析

转载自 Redis 性能问题分析 在一些网络服务的系统中,Redis 的性能,可能是比 MySQL 等硬盘数据库的性能更重要的课题。比如微博,把热点微博[1],最新的用户关系,都存储在 Redis 中,大量的查询击中 Redis&am…

谈谈微服务中的 API 网关(API Gateway)

前言 又是很久没写博客了,最近一段时间换了新工作,比较忙,所以没有抽出来太多的时间写给关注我的粉丝写一些干货了,就有人问我怎么最近没有更新博客了,在这里给大家抱歉。 那么,在本篇文章中,我…

laravel如何生成swagger接口文档

php artisan serve --host 0.0.0.0 php artisan serve --port 8080 地址: http://127.0.0.1/blogkjh/public/api/documentation 1、安装包 composer require darkaonline/l5-swagger 2、配置 php artisan vendor:publish --provider “L5Swagger\L5SwaggerService…

jzoj4673,CF578D-LCS again【统计,字符串,容斥】

正题 luoguluoguluogu题目链接:https://www.luogu.org/problemnew/show/CF578D 题目大意 求有多少个字符串TTT使得其和字符串SSS的LCSLCSLCS长度为∣S∣−1|S|-1∣S∣−1 解题思路 首先考虑挖一个空再填一个字母。 这样方案数为n∗n∗mn*n*mn∗n∗m 但是我们考虑aabaabaab这样…

OAuth2 实现单点登录 SSO

转载自 OAuth2 实现单点登录 SSO 1. 前言 技术这东西吧,看别人写的好像很简单似的,到自己去写的时候就各种问题,“一看就会,一做就错”。网上关于实现SSO的文章一大堆,但是当你真的照着写的时候就会发现根本不是那么…

Ocelot网关

Ocelot是一个.net core框架下的网关的开源项目,下图是官方给出的基础实现图,即把后台的多个服务统一到网关处,前端应用:桌面端,web端,app端都只用访问网关即可。 Ocelot的实现原理就是把客户端对网关的请求…

linux服务器部署laravel出现putenv() has been disabled for security reasons

putenv() has been disabled for security reasons 进入 www/serve/php/72/etc 找到 disable_functions后面的函数,删除 putenv() 如果报错 The Process class relies on proc_open, which is not available on your PHP installation. 删除 proc_open

欢乐纪中A组周六赛【2019.3.23】

前言 做A组被虐好惨 成绩 RankRankRank是有算别人的 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC1313132017WYC2017WYC2017WYC1901901909090901001001000001919192017HZB2017HZB2017HZB1101101101001001001010100002727272017XJQ2017XJQ2017XJQ10010010010010010…

百度OCR文字识别-身份证识别

简介 答应了园区大牛张善友 要写AI 的系列博客,所以开始了AI 系列之旅。 一、介绍 身份证识别 API 接口文档地址:http://ai.baidu.com/docs#/OCR-API/top 接口描述 用户向服务请求识别身份证,身份证识别包括正面和背面。 请求说明 请求示例…

Spring Boot Elasticsearch 入门

转载自 芋道 Spring Boot Elasticsearch 入门 1. 概述 如果胖友之前有用过 Elasticsearch 的话,可能有过被使用的 Elasticsearch 客户端版本搞死搞活。如果有,那么一起握个抓。所以,我们在文章的开始,先一起理一理这块。 Elas…

内存不足The following exception is caused by a lack of memory or swap, or not having swap

在linux执行以下三个命令即可 /bin/dd if/dev/zero of/var/swap.1 bs1M count1024 /sbin/mkswap /var/swap.1 /sbin/swapon /var/swap.1

P2513-[HAOI2009]逆序对数列【dp,前缀和】

正题 题目链接:https://www.luogu.org/problemnew/show/P2513 题目大意 求长度为nnn逆序对为kkk个的序列总数。 解题思路 设fi,jf_{i,j}fi,j​表示1∼i1\sim i1∼i的排列逆序对个数为jjj 然后显然:fi,j∑k1i−1fi−1,j−kf_{i,j}\sum_{k1}^{i-1}f_{i-1,j-k}fi,j​k1∑i−1​…

在.NET Core类库中使用EF Core迁移数据库到SQL Server

前言 如果大家刚使用EntityFramework Core作为ORM框架的话,想必都会遇到数据库迁移的一些问题。 起初我是在ASP.NET Core的Web项目中进行的,但后来发现放在此处并不是很合理,一些关于数据库的迁移,比如新增表,字段&…

Spring Boot MongoDB 入门

转载自 芋道 Spring Boot MongoDB 入门 1. 概述 可能有一些胖友对 MongoDB 不是很了解,这里我们引用一段介绍: FROM 《分布式文档存储数据库 MongoDB》 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最…

composer配置阿里云镜像

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

CF735D-Taxes【数学,数论】

正题 luogu题目链接:https://www.luogu.org/problemnew/show/CF735D 题目大意 将一个数分解成若干个数使得这若干个数的最大因子最小。 解题思路 如果是质数就是1。如果是偶数根据哥德巴赫猜想就是2。或者把一个奇数减去2后是个质数也是2。否则就是3。 codecodecode #inclu…

Spring框架-事务管理注意事项

转载自 Spring框架-事务管理注意事项 常见事务问题 事务不起作用 可能是配置不起效,如扫描问题 事务自动提交了(批量操作中) 可能是在没事务的情况下,利用了数据库的隐式提交 事务配置说明 通常情况下我们的Spring Component扫…

P2568-GCD【欧拉函数,欧拉筛】

正题 题目链接:https://www.luogu.org/problemnew/show/P2568 题目大意 求有多少个数对满足gcd(x,y)pri(x,y≤n)gcd(x,y)pri(x,y\leq n)gcd(x,y)pri(x,y≤n) 解题思路 首先对于 gcd(x,y)pgcd(x,y)pgcd(x,y)p >gcd(x/p,y/p)1>gcd(x/p,y/p)1>gcd(x/p,y/p)1 那么对数就…