首页 > 其他分享 >VS调试WSL中的.NET应用

VS调试WSL中的.NET应用

时间:2023-08-20 19:55:22浏览次数:46  
标签:WSL Visual VS Studio 组件 NET 调试

先决条件

  • Visual Studio 2019 v16.9 预览版1或更高版本(通过WSL可选组件进行.NET调试)。若要检查 WSL 组件,请选择 “工具”  > “获取工具和功能” 。 在 Visual Studio 安装程序中,选择 “单个组件”,然后键入 “WSL” 搜索安装组件 。
  • 安装WSL。
  • 安装分发版。

笔者本地环境: Visual Studio Professional 2022 17.7.1 + WSL2(CentOS7)。开始前,先创建一个名为 “WSLDemo” 的 Web API 项目。

一、使用WSL调试

1. 先选中调试下拉菜单中的 “WSL” 选项,如下:

2. 打开 launchSettings.json 文件,发现 “profiles” 里多了一个 “WSL” 配置段,不过出现警告提示:

根据官方说明:从Visual Studio 2022 预览版 3 开始, launchSettings.json 中的 commandName 从 WSL2 更改为 WSL。可是改为WSL后,提示依然存在,看来不是这个问题。尝试启动调试也同样报错:

不知道是VS本身的bug还是其它什么原因,只好先行作罢。

二、附加到WSL进程调试

 1. 把 “WSLDemo” 编译生成好的文件拷贝到WSL中,通过 “dotnet WSLDemo.dll” 命令启动:

 2. 在Visual Studio上点击 “调试”  > “附加到进程”,选择 “连接类型” 和 “连接目标” 以及要附加的进程。

然后,选择调试代码类型,确定。

3. 最后打开浏览器,输入 “http://localhost:5000” 地址访问,发现程序断点已进入,说明这种调试方式是可以的!

参考资料

在 Linux 中使用 WSL 调试 .NET 应用 - Visual Studio (Windows) | Microsoft Learn

标签:WSL,Visual,VS,Studio,组件,NET,调试
From: https://www.cnblogs.com/fengjq/p/17643949.html

相关文章

  • win10开启WSL安装ubuntu
    从win10开始提供了WSL来使用linux系统,这里利用wsl来安装ubuntu,1、首先要确保windows中的几个相关的选项是打开的 确定后重启系统 然后以管理员身份打开powershell,输入命令Enable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Windows-Subsystem-Linux2、设置......
  • VScode调试时查看指针所指向的值
    如图,现有一个字符串filenames[10000]传入到了其它函数,在该函数内设置断点进行调试时该字符串仅显示了个地址(虽然后面跟着有值,但字符串过长难以观察),那么如何将其显示出来呢?解决方法: 在watch窗口添加表达式:(char(*)[想查看的位数])变量名,即(char(*)[10000])filenames 值正......
  • c# .NET 高级编程 高并发必备技巧 - 锁
    锁最为常见的应用就是高并发的情况下,库存的控制。本次只做简单的单机锁介绍。直接看代码:每请求一次库存-1.假如库存1000,在1000个人请求之后,库存将变为0。publicintReduce0(){intr=0;stringkey="stock";stringst......
  • Windows安装Archlinux(WSL2)
    导言对于在Windows中使用Linux系统,有很多种实现方法。最常见的方法就是使用VM虚拟机软件。于是微软推出了WSL(WindowsSubSystemForLinux),初代的WSL1,总体上是在运行时将LinuxSystemCall翻译为NTAPI调用,从而在NT内核基础之上模拟实现Linux内核。也许是因为WSL1靠翻译SystemCa......
  • TerraMours:Net7对接支付宝当面付
    TerraMours:Net7对接支付宝当面付使用场景:TerraMours开源项目之一:基于GPT与stablediffusionwebui的开源项目:希望能够加入充值入口,并使用tokens数来扣费。后台源码地址:https://github.com/TerraMours/TerraMours_Gpt_Api一:先想清楚自己系统支付的逻辑。最开始是准备想着根据......
  • 如何快速在 Kubernetes 集群中新建用户
    如何快速在Kubernetes集群中新建用户Se7en 奇妙的Linux世界 2023-08-1911:59 发表于重庆收录于合集#Kubernetes274个#云原生261个#Docker197个#程序员421个公众号关注 「奇妙的Linux世界」设为「星标」,每天带你玩转Linux! Kubernetes中的用户K8S中......
  • vscode 工作区文件数目太多时,代码无法提示补全
    VScode工作区过大时Python插件失效,无法跳转-CSDN根据这篇文章的说法,是由于语言服务器要搜索源文件,文件数目太多时会消耗时间过多,此时表现为ctrl点击模块名/函数名无法跳转(都是白色的,不是彩色的)。打开vscode--输出--Python语言服务器可以看到详细的日志解决方法......
  • 桌面版vscode用免费的微软4核8G服务器做远程开发(编译运行都在云上,还能自由创建docker
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览在前文《浏览器上写代码,4核8G微软服务器免费用,Codespaces真香》中,咱们以一个Java程序员视角体验了GitHub的Codespaces产品的beta版,简单来说有以下两大收获:网......
  • vscode 实现组件之间的跳转
    1.安装vetur和vue-helper两个插件2.打开设置-->扩展-->vuehelper,然后在右边找到在settings.json中编辑,点击,添加或修改下面的配置:   "vue-helper.alias":{       "@":"src"   },   "vue-helper.componentPrefix":{       "alias"......
  • keepalived+LVS实现高可用性集群
    一、keepalived+LVS-DR实现高可用负载均衡当LVS负载均衡的主服务器出现故障时,keepalived会及时切换到备份服务器;同时会检测后端真实服务器是否存在故障无法访问,keepalived检测到该设备不可用时就会在集群的列表中删除该服务器节点,当服务器恢复时会再次自动添加进来。以此来实现集群......