VSCode调试C#程序,附缺失.dll文件的解决办法

VSCode调试C#程序,附缺失.dll文件的解决办法

 刚开始使用VScode,经过两天的折腾,初步解决了调试C#无法生成.dll文件的问题,现将我的过程叙述如下(使用到.Net Core+VScode+C#插件)。

1.首先在D盘建立一个新的文件夹,我的文件名是C# file,如下:
在这里插入图片描述
2.然后打开VS code,通过file -> Add Folder to Workspace选项将刚才建立的新的文件夹加入到工作空间中,如下:在这里插入图片描述
3.通过命令Ctrl+shift+y打开调试控制台(DEBUG CONSOLE),然后选择终端(TERMINAL),会看到当前的工作路径,如下:在这里插入图片描述
4.在当前工作目录,通过键入 dotnet new console,会为我们创建一个新的模板。如果当前的工作空间有多个文件夹,可以选择powershell更换为当前的工作目录,如下:在这里插入图片描述
5.接着,键入dotnet run,会运行刚才创建的新模板,控制台打印出"Hello World!".说明模板创建成功,可以在模板的基础上编写自己的代码了。在这里插入图片描述
6.上述过程可以类比成在Visual studio中创建一个控制台程序,需要进行一些必要的准备工作,创建一个新的模板后,在C# file文件夹中多出来一些文件,可以看作是一些初始化的文件。在这里插入图片描述
7.模板给出的程序,在主函数中只有一句代码:Console.WriteLine("Hello World!");,这就是控制台显示"Hello World!"的原因。
在这里插入图片描述
**8.由于模板给出的代码,包含的命名空间少,需要自己动手补充,using System; using System.Collections.Generic; using System.Linq; using System.Text;**
9.开始编写代码,本示例的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace C__file
{
    class Program
    {
        //定义一个Player类
           class Player
           {
               public int id;
               public int life;

               public Player(int iId,int iLife)
               {
                   this.id = iId;
                   this.life = iLife;
               }
           }
           //比较函数
           public class PlayerCompare : IComparer<Player>
           {
               //比较Player的id大小
                int IComparer<Player>.Compare(Player a,Player b)
               {
                   return a.id.CompareTo(b.id);
               }
           }
        static void Main(string[] args)
        {
           //创建一个列表List
           List<Player> player_list = new List<Player>();
           Random rand = new Random();
           for(int i = 0;i<10;i++)
           {
               int n =rand.Next(100); //随机生成100以内的数
               int n1 = rand.Next(100);
               Player p = new Player(n,n1);
               //在List中添加创建的Player的实例
               player_list.Add(p);

           }
           //对List进行排序
           player_list.Sort(new PlayerCompare());
           foreach(Player p in player_list)
           {
               Console.WriteLine("player id:" + p.id);
           }
        }
    }
}

10.然后按F5键进行调试,选择.NET Core,会自动生成一个launch.json和tasks.json两个文件。如果在VScode的工作目录C# file没有.vscode文件夹,就将其加入到C# file文件夹中。
在这里插入图片描述在这里插入图片描述
11.重新按F5键调试程序,结果成功显示如下:在这里插入图片描述
在这里插入图片描述
问题总结

  1. 整个过程经历了两天才成功,困扰最大的是在调试过程中,终端(TERMINAL)明明已经没有问题了,生成了.dll文件,但是调试控制台(DEBUG CONSOLE)还是出现错误,提示某路径下没有.dll文件,让你查看launch.json文件,这时要特别注意launch.json文件中的program中的路径与提示的路径是否相符,如果不一样,就会出现问题,不行的话,可以将生成的.dll的路径直接复制到program中。在这里插入图片描述
    在这里插入图片描述
    如上,需要保证launch.json文件中program的路径与生成的.dll路径一致。“${workspaceFolder}”表示当前的文件夹路径,就是一开始的C# file路径“D:\Program Files (x86)\C# file”,而我生成的.dll路径与launch.json是一致的,就没有出现问题。之前一直有问题就是没有将其保持一致所致。在这里插入图片描述
    2.生成的.cs文件,文件名修改后会提示出现二义性的problem,这时重启VS code即可。注意在创建新的文件时,文件名不能与关键字相同,否则会出现还原成功但编译失败的情况。
    3.按F5键时,如果提示没有生成task build文件(你的文件夹.vscode里也没有tasks.json文件),如下所示:
    在这里插入图片描述
    则生成该文件的步骤如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这样tasks.json文件已经在.vscode文件夹中生成了,如下所示:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值