使用VSCode开发和调试.NET Core程序的方法
副问题[/!--empirenews.page--]
电脑不想装几十个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 # 建设类库项目 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 # 建设办理方案 sln dotnet new sln -n Skany # 添加项目到办理方案 dotnet sln Skany.sln add Skany.Core dotnet sln Skany.sln add Skany.Output dotnet sln Skany.sln add Skany.Tests # 编译一下 Output 和 Tests 项目 dotnet build Skany.Output dotnet build Skany.Tests 当不认识呼吁时,都可以通过 -h 或 --help 参数获取辅佐,好比我不知道单位测试项目标参数,就输入 dotnet new -h 查察 new 的选项 建设完后的项目布局 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 宣布 VS 顶用器材宣布,宣布参数设置在 *Profile.pubxml,但 VS Code 中只能用呼吁 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |