使用VSCode开发和调试.NET Core程序的方法_实用技巧

来源:脚本之家  责任编辑:小易  

首先使用react native编写一个简单的应用,在碰到问题的时候,肯定需要对代码进行调试。目前react native支持在Chrome浏览器内进行调试。需要选择Scheme->Run的选项为Debug,否则模拟器中不会出现调试选项。将应用设置为在模拟器中运行,运行后www.zgxue.com防采集请勿采集本网。

电脑不想装几十个G的 VS2017,那就用 VS Code 吧

这样你会发现,其实我只打开两个窗口,一是VS CODE、一是Chrome,这样如果你是使用多屏幕或window10的多桌面的话,简直可以浪一把。而且当我在调试时发现错误,可以直接在VSCODE中修改代码,保存后由于

目标: 创建一个类库项目 Skany.Core,并用 Nuget 引用第三方组件 Hash 实现加密算法 创建一个单元测试项目 Skany.Tests,引用类库 Skany.Core,并测试其中的方法 创建一个控制台应用程序项目 Skany.Output,引用类库 Skany.Core,并输出方法执行结果 创建一个解决方案 Skany.sln,包括以上三项目

可以在内置终端里运行,或者从外部打开。或者你可以尝试一个插件叫做 Code Runner。

环境 .NET Core SDK 2.2.202

F12 开发人员工具是一套按需采用的工具,内建于 Windows Internet Explorer 9 的每次安装之中。网站开发人员可以随时在任何网页上使用 F12 工具,从而快速调试 JavaScript、HTML 和级联样式表

开始

首先在 VS Code 安装几个扩展插件 C# C# Extensions .NET Core Test Explorer

支持调试的环境 在 Windows 上你可以调试Windows和Android游戏,在 Mac 上你可以调试Mac、iOS和Android游戏。我们以 Mac 作为开发环境来演示 Code IDE 的使用,Windows上的流程和这里所介绍的

这三个插件就可以做最基础的开发了

运行和调试项目 vscode默认支持nodejs,ts,js等项目的调试。使用launch.jsonp配置调试参数。调试启动调试的默认快捷键是F5,如果没有launch.json则会弹窗提示选择调试环境,并自动创建launch.json

构建项目

创建解决方案文件夹 C:\Here\Skany

在 VS Code 中打开这个文件夹

在 VS Code 中打开终端(也可以在外部使用cmd或powershell)

接下来将使用 .NET Core CLI 命令创建项目

# 创建类库项目dotnet new classlib -n Skany.Core# 创建控制台应用程序dotnet new console -n Skany.Output# 创建xUnit单元测试项目dotnet new xunit -n Skany.Tests# 为 Output 添加 Core 引用(因为当前在解决方案目录,而不是项目目录,所以add后要加上项目名,以下同理)dotnet add Skany.Output reference Skany.Core# 为 Tests 添加 Core 引用dotnet add Skany.Tests reference Skany.Core# 为 Core 项目添加 Nuget 引用dotnet add Skany.Core package Hash --version 4.0.0# 创建解决方案 slndotnet new sln -n Skany# 添加项目到解决方案dotnet sln Skany.sln add Skany.Coredotnet sln Skany.sln add Skany.Outputdotnet sln Skany.sln add Skany.Tests# 编译一下 Output 和 Tests 项目dotnet build Skany.Outputdotnet build Skany.Tests

当不熟悉命令时,都可以通过 -h 或 --help 参数获取帮助,比如我不知道单元测试项目的参数,就输入 dotnet new -h 查看 new 的选项

注:其实用第三方插件(比如 vscode-solution-explorer)轻松实现以上命令的可视化操作,这里只是演示 .NET Core CLI 命令用法

创建完后的项目结构

SKANY | Skany.Core | Class1.cs | Skany.Core.csproj | Skany.Output | Program.cs | Skany.Output.csproj | Skany.Tests | UnitTest1.cs | Skany.Tests.csproj | Skany.sln

将 Core 项目中的 Class1.cs 改为 CryptHelper.cs,代码如下

using HashLibrary;namespace Skany.Core{ public class CryptHelper { public static string HashPassword(string password, out string salt) { var hash = HashedPassword.New(password, hashLength: 50, saltLength: 10); salt = hash.Salt; return hash.Hash; } public static bool VerifyPassword(string password, string hashPassword, string salt) { var hash = new HashedPassword(hashPassword, salt); bool matches = hash.Check(password); return matches; } }}

在 Tests 项目中别写测试案例,将 UnitTest1.cs 改为 CryptUnitTest.cs,代码如下

using System;using Xunit;namespace Skany.Tests{ using Core; public class CryptUnitTest { [Theory] [InlineData("zhang")] [InlineData("baidu")] public void HashPasswordTest(string password) { string salt; var hashPassword = CryptHelper.HashPassword(password, out salt); Assert.NotNull(hashPassword); Assert.NotNull(salt); Assert.True(hashPassword.Length == CryptHelper.HashLength); Assert.True(salt.Length == CryptHelper.SaltLength); VerifyPasswordTest(password, hashPassword, salt); } [Theory] [InlineData("zhang", "ÁēÕĀ1fv¾ĒëÜĝ}f§¼kÈ$Æ7KĎĞĐMĬZĝČ9ËÅ«¢ÝĪÙØê£İ)¥jµQIįa", "ïÛŀB³äĭonÊ")] [InlineData("baidu", " g©®Ģ¹Óäõ¥ģH»7ċuO¸%AOĮ©ĩ§8ĆKĄöĉĖß$µåˬüÖ=ĝĴ¶Cꨧh/", "ĀĖ§į^H7Í_h")] public void VerifyPasswordTest(string password, string hashPassword, string salt) { Assert.True(hashPassword.Length == CryptHelper.HashLength); Assert.True(salt.Length == CryptHelper.SaltLength); Assert.True(CryptHelper.VerifyPassword(password, hashPassword, salt)); } }}

单元测试

通过命令执行单元测试

dotnet test Skany.Tests

如果只想测试其中一个方法 HashPasswordTest

dotnet test Skany.Tests --filter HashPasswordTest

当然有可视化的测试插件,谁还用命令啊

控制台应用程序

在 Output 项目调用 Core.CryptHelper 输出结果,代码如下

static void Main(string[] args){ string salt = null; var password = "baidu"; var hashPassword = CryptHelper.HashPassword(password, out salt); Console.WriteLine("Password => {0}", password); Console.WriteLine("HashPassword => {0}", hashPassword); Console.WriteLine("Salt => {0}", salt); //=================================== var matchs = CryptHelper.VerifyPassword(password, hashPassword, salt); Console.WriteLine("Matchs: {0}", matchs); Console.ReadLine();}

运行 Output 项目

dotnet run --project Skany.Output

断点调试

在 Output/Program.cs 中第13行设置一个端点(鼠标在行首点一下即可,再点一下移除断点)

DEBUG面板配置选择 .NET Core Launch (console),点击绿色的开始调试按钮,启动调试

与 VS 中一样,可以通过 F5/F10/F11 控制调试流程,也可以添加 Watch 变量,鼠标也可以感知变量值

如果开始测试后,警告提示启动程序找不到,可以按提示(也可以点击界面齿轮按钮)修改配置文件 .vscode/launch.json

核对 program 节点路径是否正确

发布

VS 中用工具发布,发布参数配置在 *Profile.pubxml,但 VS Code 中只能用命令

# 发布Release配置,包括 .net core 运行时,分别发布到 linux 和 windowsdotnet publish -c Release --self-contained -r linux-x64dotnet publish -c Release --self-contained -r win-x64# 发布Release配置,包括 .net core 运行时,指定目标框架 netcoreapp2.2dotnet publish -c Release -f netcoreapp2.2 --self-contained -r linux-x64dotnet publish -c Release -f netcoreapp2.2 --self-contained -r win-x64# 发布Release配置,不包括 .net core 运行时dotnet publish -c Release --self-contained false -r linux-x64dotnet publish -c Release --self-contained false -r win-x64# 发布Release配置,不包括 .net core 运行时,指定输出目录dotnet publish -c Release --self-contained false -r linux-x64 -o C:\Here\Spany\publish\linux-x64dotnet publish -c Release --self-contained false -r win-x64 -o C:\Here\Spany\publish\win-x64

虽然 VS 无比强大,VS Code 小清醒,但是 VS Code 灵活扩展性强,用来开发前端或 .NET Core 项目,也是得心应手

到此这篇关于使用VSCode开发和调试.NET Core程序的方法的文章就介绍到这了,更多相关VSCode开发和调试.NET Core内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

VS Code虽然是个编辑器,但也能作为gdb的前端来启动调试,实际调用的是gdb。点击VSCode左边的“虫子”图标,然后点齿轮,就会让你配置启动调试json文件。只要就是改一下启动程序名,改为你要调试 的文件,保存。在程序中点击行号打上断点,然后点击“绿色的箭头”就会启动调试内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • vscode搭建java开发环境的方法
  • vscode python开发环境配置的详细步骤
  • vscode 配置 python3开发环境的方法
  • vscode 开发vue项目的方法步骤
  • 在vscode中如何配置python开发环境
  • vscode extension插件开发详解
  • 用vscode开发vue应用的方法步骤
  • vscode提高 node 和 vue 开发效率的插件推荐
  • vscode插件开发之插件初步通信的方法步骤
  • vscode配置远程开发环境并远程调试运行c++代码的教程
  • asp.net 模拟提交有文件上传的表单(通过http模拟上传文件)
  • .net读写excel工具spire.xls使用 重量级的excel图表功能(5)
  • 关于visual studio 2012 update 2中的新功能介绍
  • asp.net的广告控件adrotator用法分析
  • asp.net(c#)利用构造器链的代码
  • 生成多字段排序分页的sql的通用类
  • asp.net sqlconnection con.close和con.dispose区别
  • asp.net实时显示文本框字数实现代码
  • asp.net分页功能实现
  • .net smtp发送email实例(可带附件)
  • 如何用vs code调试运行c语言程序
  • 如何使用Chrome和VS code调试Angular应用
  • vscode点击调试然后啥反应都没有,是vscode坏掉了吗
  • 用vscode调试时,怎样配置才能使用集成的terminal而不是win的
  • 如何在VS CODE调试Angular
  • 为什么我的VSCode只能以调试模式运行?
  • 如何使用 F12 开发人员工具调试网页
  • 如何使用Cocos Code IDE调试Lua开发的游戏
  • vscode 可以直接调试ts文件吗
  • 点内部版本号n次打不开开发者选项里的USB调试
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全基础应用实用技巧自学过程首页asp.net实用技巧vscode搭建java开发环境的方法vscode python开发环境配置的详细步骤vscode 配置 python3开发环境的方法vscode 开发vue项目的方法步骤在vscode中如何配置python开发环境vscode extension插件开发详解用vscode开发vue应用的方法步骤vscode提高 node 和 vue 开发效率的插件推荐vscode插件开发之插件初步通信的方法步骤vscode配置远程开发环境并远程调试运行c++代码的教程asp.net 模拟提交有文件上传的表单(通过http模拟上传文件).net读写excel工具spire.xls使用 重量级的excel图表功能(5)关于visual studio 2012 update 2中的新功能介绍asp.net的广告控件adrotator用法分析asp.net(c#)利用构造器链的代码生成多字段排序分页的sql的通用类asp.net sqlconnection con.close和con.dispose区别asp.net实时显示文本框字数实现代码asp.net分页功能实现.net smtp发送email实例(可带附件)java正则表达式 pattern和matche未将对象引用设置到对象的实例 (asp.net(c#)网页跳转七种方法小结未能加载文件或程序集“xxx”或它asp.net“服务器应用程序不可用”asp.net中的几种弹出框提示基本实asp.net gridview 72般绝技asp.net生成excel并导出下载五种asp.net对路径"xxxxx"asp.net汉字转拼音和获取汉字首字asp.net(vb.net)获取真实ip的函数ckeditor与dotnetcore实现图片上传功能.net core版 文件上传/ 支持批量上传拖拽在asp.net core中使用modelconvention实现asp.net中的“按需打印”(打印你需要打印赫赫大名的a*寻路算法(vb.net版本)asp.net core中自定义路由约束的实现url重写及干掉asp.net试图状态的实现方法asp.net使用odp即oracle连接方式的的防注linux下部署.net core环境的步骤详解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved