検索
ホームページ開発ツールVSCodevscode を使用して .net プロジェクトを作成およびデバッグする方法

vscode を使用して .net プロジェクトを作成およびデバッグする方法

Dec 16, 2019 am 11:25 AM
.netvscode書くデバッグプロジェクト

vscode を使用して .net プロジェクトを作成およびデバッグする方法

プラグインのインストール

VSCode を使用してドットネット コア プロジェクトを作成するデフォルトの機能に加えて、いくつかの非常にユニークな機能をインストールすることをお勧めします、 便利な拡張機能 など、VSCode のプラグイン機構があるからこそ、さらに強力になり、さまざまなニーズに応えてくれます。

1. C# 言語拡張機能

これは、VSCode を使用して C# コードを記述するために必要です。インストール後、デフォルトで .cs ファイルを開くと、デバッガーが自動的にダウンロードされます。

2. [C# XML コメント]

このプラグインは、コメントを簡単に追加するのに役立ちますので、インストールすることを選択してください。

3. [C# 拡張機能]

このプラグインは、ファイルの作成時に、対応する名前空間などを含むファイルの内容を初期化するのに役立ちますので、強くお勧めします。

他にも、EditorConfig、Guildes、One Dark Theme、Project Manager、Setting Sync などの補助クラスがいくつかあります。

新しいマルチプロジェクト ソリューションを作成します

コマンド ライン ツールを開き、コマンド ライン ツールに次のように入力します:

$:> dotnet new sln -o vscode_tutorial //在当前目录下 创建名为vscode_tutorial

上記コマンドは dotnet sdk を使用し、新しいソリューション ファイルを作成します。コマンド ラインを使用せずに手動で作成することもできますが、次の図に示すように、dotnet new を使用すると、より簡単に dotnet core 関連のプロジェクトを作成できます。

# ソリューションを構築した後、コンソール プロジェクト、クラス ライブラリ プロジェクト、単体テスト プロジェクトなどのプロジェクトを構築する必要があります。 vscode を使用して .net プロジェクトを作成およびデバッグする方法

まず、ビジネス メソッドを保存するパブリック クラス ライブラリ プロジェクトを作成します (実際のプロジェクトに取り組んでいることを前提としています) (この時点では sln ディレクトリに cd されていることに注意してください)

$:> dotnet new classlib -o VSCodeTutorial.Common //在当前目录下新建类库项目VSCodeTutorial.Common
$:> dotnet sln add VSCodeTutorial.Common/VSCodeTutorial.Common.csproj //将项目添加到解决方案中

同様に、コンソール プロジェクトと単体テスト プロジェクトを作成します。

$:> dotnet new console -o VSCodeTutorial.ConsoleApp
$:> dotnet sln add VSCodeTutorial.ConsoleApp/VSCodeTutorial.ConsoleApp.csproj
$:> dotnet new xunit -o VSCodeTutorial.UnitTest
$:> dotnet sln add VSCodeTutorail.UnitTest/VSCodeTutorial.UnitTest.csproj

ここで、コントロール テンプレートの名前は console であり、単体テストには xunit を使用することに注意してください。

現時点でプロジェクト構造は確立されています。次の図に示すように、VsCode を使用して現在のディレクトリを開いて、完成したプロジェクト構造を確認してみましょう。

プロジェクト間の依存関係を追加する

VsCode を使用してプロジェクト ファイル VSCodeTutorial.ConsoleApp.csproj を開き、その中の共通プロジェクトへの参照を追加しますvscode を使用して .net プロジェクトを作成およびデバッグする方法

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>
 <!--添加项目引用-->
  <ItemGroup>
    <ProjectReference Include="..\VSCodeTutorial.Common\VSCodeTutorial.Common.csproj" />
  </ItemGroup></Project>

VSCodeTutorial を開く.UnitTest.csproj プロジェクト ファイルにも、Common プロジェクトへの参照を追加します

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup><!--nuget 上的类库引用-->
  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
  </ItemGroup><!--本地项目引用-->
 <ItemGroup>
    <ProjectReference Include="..\VSCodeTutorial.Common\VSCodeTutorial.Common.csproj" />
  </ItemGroup></Project>
上記のプロジェクトとは異なり、ここには追加の依存関係がいくつかあります。ここで理解するだけで済みます。依存関係を追加すると、 nuget パッケージの場合は、上記のように PackageReference を使用して、クラス ライブラリの名前とバージョン番号を入力するだけです。

依存関係を追加した後、ルート ディレクトリで dotnet list を使用して初期化するか、dotnet build コマンドを使用してコンパイルを試みることができます。

プロジェクトの依存関係を図 2 に示します。

コードの作成を開始します

この全体的な要件project: I コンソール プログラムを開く必要があります。実行中、ユーザーは 50 未満の整数を入力する必要があります。この数値を受け取ると、コンソールはこの数値の階乗を計算し、結果をコンソールに出力します。 vscode を使用して .net プロジェクトを作成およびデバッグする方法

単純に考えた結果、factorial の実装を Common プロジェクトに入れて単体テストを行うことにし、そのテストコードを UnitTest プロジェクトに入れました

#まず、以前に生成したプロジェクト内の不要なファイル (VsCodeTutorial.Common の Class1.cs と VSCodeTutorial.UnitTest の UnitTest1.cs) を削除します。もちろん、これらを保持することもできます。

最初のステップでは、VsCodeTutorial.Common プロジェクトに新しいファイル MathHelper.cs を作成し、階乗を実装するために次のコードをファイルに追加します。コードは比較的単純なので、詳細は説明しません。 。

namespace VSCodeTutorial.Common{    
public class MathHelper
    {        /// <summary>
        /// 阶乘,本例中暂不考虑 溢出的问题哦 Factorial(n) = n*(n-1)*(n-2)...*1;
        /// </summary>
        /// <param name="n">输入参数n</param>
        /// <returns></returns>
        public static int Factorial(int n){            if(n <=0 ){                
throw new System.ArgumentOutOfRangeException("n","参数错误,不能小于等于零");
            }            if(n == 1){                return 1;
            }            return n*Factorial(n-1);
        }
    }
}

2 番目のステップは、このコードをテストして、目標を達成したかどうかを確認することです。VSCodeTutorial.UnitTest プロジェクトに新しいファイル MathHelpTest.cs を作成し、Factorial 関数をテストするメソッドをそのファイルに追加します。手順:

using System;
using VSCodeTutorial.Common;
using Xunit;
namespace VSCodeTutorial.UnitTest{    
public class MathHelperTest
    {
         [Fact]        
public void TestFactorial()        {            //先测试一下边界的情况
            int zero = 0 ;            
var exception = Assert.Throws<ArgumentOutOfRangeException>(() => MathHelper.Factorial(zero));            
int one = 1;            
var oneResult = MathHelper.Factorial(one);
            Assert.Equal(1, oneResult);            //再测一下正常的情况
            int five = 5;            
var fiveResult = MathHelper.Factorial(five);
            Assert.Equal(5*4*3*2*1, fiveResult);            
int ten = 10;            
var tenResult = MathHelper.Factorial(ten);
            Assert.Equal(10*9*8*7*6*5*4*3*2*1, tenResult);
        }
    }
}
vscode を使用して .net プロジェクトを作成およびデバッグする方法

コマンド ラインを使用して単体テストを実行する

VSCode を構成する前に、コマンド ラインを使用して単体テストを実行することをお勧めします。これは、構成内容をより深く理解するのに役立ちます。

ルート ディレクトリにコマンドを入力します: dotnet test ./VSCodeTutorial.UnitTest/VSCodeTutorial.UnitTest.csproj 実行結果を表示します:

很差劲会出现编码错误,而且这个错误暂时还没有办法解决..但是我猜单元测试通过了,这个问题相信在后续的版本中肯定会得到解决,事实上在Console项目中是可以解决输出乱码问题的。不过可喜的是在VSCode中运行单元测试是没有乱码的问题的。

使用VSCode 运行单元测试

首先当你打开项目的时候,VSCode 可能已经建议你配置一下相关的内容,如下图所示:

vscode を使用して .net プロジェクトを作成およびデバッグする方法

选择Yes, 会帮你新建这个一个目录和两个文件,luanch.json是用来执行调试程序的配置,而tasks.json则是配置各种任务的,其中运行单元测试就是一种任务。

vscode を使用して .net プロジェクトを作成およびデバッグする方法

首先我们打开tasks.json ,默认已经添加好了一个任务,如下所示:

{    
"version": "0.1.0",    
"command": "dotnet", //全局命令,即所有的任务都使用这个命令,也可以在各个任务中设置    
"isShellCommand": true,    
"args": [],    
"tasks": [        
{            
"taskName": "build", //任务名称 当设置了主的command 之后这个taskName也会作为一个命令参数            
"args": [                
"${workspaceRoot}\\VSCodeTutorial.ConsoleApp\\VSCodeTutorial.ConsoleApp.csproj"
            ],            
"isBuildCommand": true, 
//一个解决方案只能设置一个编译任务,多设置了也是白搭,当然也能执行,只是不能利用快捷方式运行了           
"problemMatcher": "$msCompile"//C#项目的problemMatcher        
}    
]}

默认使用了全局命令行,这样可以在任务中省去配置dotnet命令,但是如果你的解决方案中包括多个项目需要不同的命令行编译方式,如果前端网站使用grunt打包资源,那么顶部应该留空,而在各个子任务中配置command。

还有如果存在多个编译项目时(如客户端和服务端在一个解决方案时),也应该把command配置在子任务中,并设置个性化的taskName以便区别,所以我推荐把command设置在任务中,下面我们修改一下以上代码,并添加一个运行单元测试的人。

{    
"version": "0.1.0",    
"isShellCommand": true,    
"args": [],    
"tasks": [        
{           
"taskName": "build_console",            
"command":"dotnet"
            "args": [                
"build", //组成dotnet build                
//设置需要编译的项目,如果存在多个启动项目可以设置成解决方案文件(.sln),这里只有一个项目所以设置运行项目也可以                
"${workspaceRoot}\\VSCodeTutorial.ConsoleApp\\VSCodeTutorial.ConsoleApp.csproj"
            ],            
"isBuildCommand": true, //设置是否编译项目            
"problemMatcher": "$msCompile"
        },        
{            
"taskName": "UnitTest",            
"command":"dotnet",            
"args": [                
"test",//组成dotnet test 命令                
"${workspaceRoot}\\VSCodeTutorial.UnitTest\\VSCodeTutorial.UnitTest.csproj"
            ],            
"isTestCommand": true,//设置为单元测试项目           
"problemMatcher": "$msCompile"
        }    
]}

上面的代码中,我将command命令移到了任务中,并给每个任务起了一个好识别的名字,现在这里一个有2个任务了

第一个任务build_console 运行时 会编译VSCodeTutorial.ConsoleApp项目及其依赖的项目

第二个任务UnitTest则是单元测试项目,运行dotnet test命令,这里有个特殊的设置就是"isTestCommand": true 标识为测试项目后可以通过快捷方式运行该命令

任务建好了,我们来运行任务把,windows按下 ctrl+shift+p,在弹出的对话框中输入:task 过滤命令可以得到以下的选项

vscode を使用して .net プロジェクトを作成およびデバッグする方法

选择任务:运行测试任务 这条来运行我们之前编写好的单元测试项目,可以看到运行成功的情况,如下图所示:

vscode を使用して .net プロジェクトを作成およびデバッグする方法

这里中文显示正常,没有乱码哦,但是我不知道是什么原因..就是这么神奇

对于经常执行的任务,可以通过设置键盘快捷方式来方便调用,可以看到我分别设置了ctrl+shift+t 运行测试任务ctrl+shift+b 运行编译任务,ctrl+shift+r 启动选择任务,大家可以根据自己的喜好来设置。

开始编写控制台代码

打开VSCodeTutorial.ConsoleApp项目中的Program.cs文件,修改其中的代码,如下所示:

using System;
using VSCodeTutorial.Common;
namespace VSCodeTutorial.ConsoleApp{    
class Program
    {        
static void Main(string[] args)        {            
while(true)
            {
                Console.WriteLine("请输入一个小于10的数字,回车结束:");                
string input_str = Console.ReadLine();                
if(int.TryParse(input_str ,out var input_int))
                {                    
if(input_int>0 && input_int<=10){                       
int result =  MathHelper.Factorial(input_int);
                       Console.WriteLine("你输入的数字是{0},它的阶乘结果是{1},退出请按ctrl+c,按其他键再试一次",
input_int,result);
                       Console.ReadKey();
                    }
                }                else{
                    Console.WriteLine("输入的字符不是有效的数字");
                }
            }

        }
    }
}

代码比较 简单,就不做解释了,我们直接来看运行的结果,这里顺便提一下啊,在我们之前做的众多工作之后,我们这里编写代码有美美哒的智能提示哦,如下图所示:

vscode を使用して .net プロジェクトを作成およびデバッグする方法

好,再根目录下输入以下命令运行ConsoleApp

$:> dotnet run -p ./VSCodeTutorial.ConsoleApp/VSCodeTutorial.ConsoleApp.csproj

也可以在VSCodeTutorial.ConsoleApp 目录下直接运行dotnet run 命令即可.

结果运行还是乱码中,但是这次我们有办法解决,我们在控制台代码中添加一句代码即可onsole.OutputEncoding = Encoding.UTF8

using System;
using System.Text;
using VSCodeTutorial.Common;namespace VSCodeTutorial.ConsoleApp{    
class Program
    {        
static void Main(string[] args)        {
            Console.OutputEncoding = Encoding.UTF8; // 设置控制台编码
            while(true)
            {
                Console.WriteLine("请输入一个小于10的数字,回车结束:");                
string input_str = Console.ReadLine();                
if(int.TryParse(input_str ,out var input_int))
                {                    
if(input_int>0 && input_int<=10){                       
int result =  MathHelper.Factorial(input_int);
Console.WriteLine("你输入的数字是{0},它的阶乘结果是{1},退出请按ctrl+c,按其他键再试一次",input_int,result);
                       Console.ReadKey();
                    }
                }                else{
                    Console.WriteLine("输入的字符不是有效的数字");
                }
            }

        }
    }
}

使用dotnet build编译后,再次运行Console项目看到了我们期望的界面

vscode を使用して .net プロジェクトを作成およびデバッグする方法

程序运行正确,当然了,我们都跑过单元测试了不是。。

开始调试程序

如下图提示操作:

vscode を使用して .net プロジェクトを作成およびデバッグする方法

终于轮到我们之前生成的launch.json文件出场了,先来看下它的代码,代码中已经添加了配置的说明

{    
"version": "0.2.0",    
"configurations": [        
{            
"name": ".NET Core Launch (console)", //配置名称 可以改成更好识别的名字            
"type": "coreclr", // .net core类型的调试            
"request": "launch", //调试方式 不用改            
"preLaunchTask": "build", // 前置任务,这里是编译,但是默认的编译任务,已经被我改了名字了,所以这里要改一下哦            "program": "${workspaceRoot}\\VSCodeTutorial.ConsoleApp\\bin\\Debug\\netcoreapp1.1\\VSCodeTutorial.ConsoleApp.dll", //需要调试的DLL的位置 
"args": [], //额外的参数            
"cwd": "${workspaceRoot}\\VSCodeTutorial.ConsoleApp", //工作目录            
"console": "internalConsole", //控制台模式,这里是内嵌控制台,一会要改成外置的,不然没法交互输入            
"stopAtEntry": false,            
"internalConsoleOptions": "openOnSessionStart"
        },        
{            
"name": ".NET Core Attach", //名称            
"type": "coreclr", //类型            
"request": "attach", //使用附加的方式            
"processId": "${command:pickProcess}" //附加的进程ID        
}    
]}

根据实际情况,需要对上面的配置进行以下变更,变更的部分已经添加了注释,附加调试不是本文的重点,就不改了

{    
"version": "0.2.0",    
"configurations": [
        {            
        "name": "调试ConsoleApp", //修改下命令            
        "type": "coreclr",            
        "request": "launch",            
        "preLaunchTask": "build_console", //修改前置任务名和task.json中配置一致            
        "program": "${workspaceRoot}\\VSCodeTutorial.ConsoleApp\\bin\\Debug\\netcoreapp1.1\\
        VSCodeTutorial.ConsoleApp.dll",            
        "args": [],            
        "cwd": "${workspaceRoot}\\VSCodeTutorial.ConsoleApp",            
        "externalConsole":true, //使用外置的控制台            
        "stopAtEntry": false,            
        "internalConsoleOptions": "openOnSessionStart"
        },
        {            
        "name": ".NET Core Attach",            
        "type": "coreclr",            
        "request": "attach",            
        "processId": "${command:pickProcess}"
        }
    ]
}

修改完成后,我们点击运行按钮可以开始调试了,调试的方式和使用VS是一致的,快捷键为F5 F10 F11

vscode を使用して .net プロジェクトを作成およびデバッグする方法

完成!

相关文章教程推荐:vscode教程

以上がvscode を使用して .net プロジェクトを作成およびデバッグする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Visual Studio:価格設定とライセンスオプションの探索Visual Studio:価格設定とライセンスオプションの探索Apr 13, 2025 am 12:03 AM

VisualStudioには3つのバージョンがあります:Community Free Editionは個人や小チーム向け、プロの有料版はプロの開発者と中小チーム向けであり、Enterprise Ultimate Editionは大企業と複雑なプロジェクト向けです。

Visual Studioの価値:その利点に対するコストを比較検討しますVisual Studioの価値:その利点に対するコストを比較検討しますApr 12, 2025 am 12:06 AM

VisualStudioは、強力で包括的であるため、.NET開発において非常に価値があります。高コストとリソースの消費にもかかわらず、それがもたらす効率の改善と開発の経験は重要です。コミュニティは、個々の開発者や小さなチームに最適です。大企業は、専門家や企業に適しています。

Visual Studioの可用性:どのエディションが無料ですか?Visual Studioの可用性:どのエディションが無料ですか?Apr 10, 2025 am 09:44 AM

VisualStudioの無料バージョンには、VisualStudioCommunityとVisualStudiocodeが含まれます。 1. VisualStudioCommunityは、個々の開発者、オープンソースプロジェクト、小規模チームに適しています。それは強力で、個々のプロジェクトや学習プログラミングに適しています。 2。VisualStudioCodeは、複数のプログラミング言語と拡張機能をサポートする軽量コードエディターです。スタートアップの速度と低いリソースの使用量が速いため、柔軟性とスケーラビリティが必要な開発者に適しています。

Windows 8用のVisual Studioをインストールする方法は?Windows 8用のVisual Studioをインストールする方法は?Apr 09, 2025 am 12:19 AM

Windows 8にVisualStudioをインストールする手順は次のとおりです。1。公式Microsoft WebサイトからVisualStudioCommunity2019インストールパッケージをダウンロードします。 2.インストーラーを実行し、必要なコンポーネントを選択します。 3.インストールが完了した後に使用できます。 Windows 8互換性のあるコンポーネントを選択し、十分なディスクスペースと管理者の権利があることを確認してください。

私のコンピュータはコードとコードを実行できますか?私のコンピュータはコードとコードを実行できますか?Apr 08, 2025 am 12:16 AM

VSCODEは、基本システムの要件が満たされている限り、ほとんどの最新のコンピューターで実行できます。1。オペレーティングシステム:Windows 7以降、MacOS 10.9以降、Linux。 2。プロセッサ:1.6GHz以下。 3。メモリ:少なくとも2GB RAM(4GB以上推奨); 4。ストレージスペース:少なくとも200MBの利用可能なスペース。設定を最適化し、拡張使用を削減することにより、低構成コンピューターでスムーズなユーザーエクスペリエンスを取得できます。

プログラムをWindows 8と互換性のあるものにするにはどうすればよいですか?プログラムをWindows 8と互換性のあるものにするにはどうすればよいですか?Apr 07, 2025 am 12:09 AM

Windows 8でプログラムをスムーズに実行するには、次の手順が必要です。1。互換性モードを使用して、コードを介してこのモードを検出して有効にします。 2. API呼び出しを調整し、Windowsバージョンに従って適切なAPIを選択します。 3.パフォーマンスの最適化を実行し、互換性モードの使用を避け、API呼び出しを最適化し、一般的なコントロールを使用してください。

VSコードはWindows 8で動作しますか?VSコードはWindows 8で動作しますか?Apr 06, 2025 am 12:13 AM

はい、vscodeisCompatibleWithWindows8.1)theinstallerfromthevscodesurethelatest.netframeworkisInstalled.2)installextensionsionsingTheCommandline、NotingSomeMayloadSlower.3)ManageByClusnnnnyRoightEntions、Light -omayloadSlower.3)

VSコードとVisual Studioの違いは何ですか?VSコードとVisual Studioの違いは何ですか?Apr 05, 2025 am 12:07 AM

VSCODEは、複数の言語と拡張機能に適した軽量コードエディターです。 VisualStudioは、主に.NET開発に使用される強力なIDEです。 1.VSCODEは電子に基づいており、クロスプラットフォームをサポートし、モナコエディターを使用します。 2。VisualStudioは、Microsoftの独立したテクノロジースタックを使用して、デバッグとコンパイラを統合します。 3.VSCODEは単純なタスクに適しており、VisualStudioは大規模なプロジェクトに適しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。