使用VSCode开发和调试.NET Core程序的办法
电脑不想装几十个G的 VS2017,那就用 VS Code 吧
目标
- 创建一个类库项目 Skany.Core,并用 Nuget 引用第三方组件 Hash 实现加密算法
- 创建一个单元测试项目 Skany.Tests,引用类库 Skany.Core,并测试其中的方法
- 创建一个控制台应用程序项目 Skany.Output,引用类库 Skany.Core,并输出方法执行结果
- 创建一个解决方案 Skany.sln,包括以上三项目
环境
- .NET Core SDK 2.2.202
开始
在 VS Code 安装几个扩展插件
- C#
- C# Extensions
- .NET Core Test Explorer
这三个插件就可以做最基础的开发了
构建项目
创建解决方案文件夹 C:HereSkany
在 VS Code 中打开这个文件夹
在 VS Code 中打开终端(也可以在外部使用cmd或poershell)
接下来将使用 .NET Core CLI 命令创建项目
# 创建类库项目 dot ne classlib -n Skany.Core # 创建控制台应用程序 dot ne console -n Skany.Output # 创建xUnit单元测试项目 dot ne xunit -n Skany.Tests # 为 Output 添加 Core 引用(因为当前在解决方案目录,而不是项目目录,所以add后要加上项目名,以下同理) dot add Skany.Output reference Skany.Core # 为 Tests 添加 Core 引用 dot add Skany.Tests reference Skany.Core # 为 Core 项目添加 Nuget 引用 dot add Skany.Core package Hash --version 4.0.0 # 创建解决方案 sln dot ne sln -n Skany # 添加项目到解决方案 dot sln Skany.sln add Skany.Core dot sln Skany.sln add Skany.Output dot sln Skany.sln add Skany.Tests # 编译一下 Output 和 Tests 项目 dot build Skany.Output dot build Skany.Tests
当不熟悉命令时,都可以通过 -h 或 --help 参数获取帮助,比如我不知道单元测试项目的参数,就输入 dot ne -h 查看 ne 的选项
注其实用第三方插件(比如 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 HashPassord(string passord, out string salt) { var hash = HashedPassord.Ne(passord, hashLength: 50, saltLength: 10); salt = hash.Salt; return hash.Hash; } public static bool VerifyPassord(string passord, string hashPassord, string salt) { var hash = ne HashedPassord(hashPassord, salt); bool matches = hash.Check(passord); 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 HashPassordTest(string passord) { string salt; var hashPassord = CryptHelper.HashPassord(passord, out salt); Assert.NotNull(hashPassord); Assert.NotNull(salt); Assert.True(hashPassord.Length == CryptHelper.HashLength); Assert.True(salt.Length == CryptHelper.SaltLength); VerifyPassordTest(passord, hashPassord, 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 VerifyPassordTest(string passord, string hashPassord, string salt) { Assert.True(hashPassord.Length == CryptHelper.HashLength); Assert.True(salt.Length == CryptHelper.SaltLength); Assert.True(CryptHelper.VerifyPassord(passord, hashPassord, salt)); } } }
单元测试
通过命令执行单元测试
dot test Skany.Tests
如果只想测试其中一个方法 HashPassordTest
dot test Skany.Tests --filter HashPassordTest
有可视化的测试插件,谁还用命令啊
控制台应用程序
在 Output 项目调用 Core.CryptHelper 输出结果,代码如下
static void Main(string[] args) { string salt = null; var passord = "baidu"; var hashPassord = CryptHelper.HashPassord(passord, out salt); Console.WriteLine("Passord => {0}", passord); Console.WriteLine("HashPassord => {0}", hashPassord); Console.WriteLine("Salt => {0}", salt); //=================================== var matchs = CryptHelper.VerifyPassord(passord, hashPassord, salt); Console.WriteLine("Matchs: {0}", matchs); Console.ReadLine(); }
运行 Output 项目
dot 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配置,包括 . core 运行时,分别发布到 linux 和 indos dot publish -c Release --self-contained -r linux-x64 dot publish -c Release --self-contained -r in-x64 # 发布Release配置,包括 . core 运行时,指定目标框架 coreapp2.2 dot publish -c Release -f coreapp2.2 --self-contained -r linux-x64 dot publish -c Release -f coreapp2.2 --self-contained -r in-x64 # 发布Release配置,不包括 . core 运行时 dot publish -c Release --self-contained false -r linux-x64 dot publish -c Release --self-contained false -r in-x64 # 发布Release配置,不包括 . core 运行时,指定输出目录 dot publish -c Release --self-contained false -r linux-x64 -o C:HereSpanypublishlinux-x64 dot publish -c Release --self-contained false -r in-x64 -o C:HereSpanypublishin-x64
虽然 VS 无比强大,VS Code 小清醒, VS Code 灵活扩展性强,用来开发前端或 .NET Core 项目,也是得心应手
到此这篇关于使用VSCode开发和调试.NET Core程序的方法的文章就介绍到这了,更多相关VSCode开发和调试.NET Core内容请搜索考高分网以前的文章或继续浏览下面的相关文章电脑维修网希望大家以后多多支持考高分网!
空调维修
- 海信电视维修站 海信电视维修站点
- 格兰仕空调售后电话 格兰仕空调维修售后服务电
- 家电售后服务 家电售后服务流程
- 华扬太阳能维修 华扬太阳能维修收费标准表
- 三菱电机空调维修 三菱电机空调维修费用高吗
- 美的燃气灶维修 美的燃气灶维修收费标准明细
- 科龙空调售后服务 科龙空调售后服务网点
- 华帝热水器维修 华帝热水器维修常见故障
- 康泉热水器维修 康泉热水器维修故障
- 华凌冰箱维修电话 华凌冰箱维修点电话
- 海尔维修站 海尔维修站点地址在哪里
- 北京海信空调维修 北京海信空调售后服务
- 科龙空调维修 科龙空调维修故障
- 皇明太阳能售后 皇明太阳能售后维修点
- 海信冰箱售后服务 海信冰箱售后服务热线电话
- 海尔热水器服务热线