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

 更新时间:2020年12月8日 11:35  点击:2064

刚开始使用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键调试程序,结果成功显示如下:

在这里插入图片描述

在这里插入图片描述

问题总结:

整个过程经历了两天才成功,困扰最大的是在调试过程中,终端(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文件夹中生成了,如下所示:

在这里插入图片描述

到此这篇关于VSCode调试C#程序及附缺失.dll文件的解决办法的文章就介绍到这了,更多相关VSCode调试C#缺失.dll内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

[!--infotagslink--]

相关文章

  • C#实现简单的登录界面

    我们在使用C#做项目的时候,基本上都需要制作登录界面,那么今天我们就来一步步看看,如果简单的实现登录界面呢,本文给出2个例子,由简入难,希望大家能够喜欢。...2020-06-25
  • 浅谈C# 字段和属性

    这篇文章主要介绍了C# 字段和属性的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-11-03
  • C#中截取字符串的的基本方法详解

    这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • C#实现简单的Http请求实例

    这篇文章主要介绍了C#实现简单的Http请求的方法,以实例形式较为详细的分析了C#实现Http请求的具体方法,需要的朋友可以参考下...2020-06-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#中new的几种用法详解

    本文主要介绍了C#中new的几种用法,具有很好的参考价值,下面跟着小编一起来看下吧...2020-06-25
  • 使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)

    这篇文章主要介绍了使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#开发Windows窗体应用程序的简单操作步骤

    这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • C#和JavaScript实现交互的方法

    最近做一个小项目不可避免的需要前端脚本与后台进行交互。由于是在asp.net中实现,故问题演化成asp.net中jiavascript与后台c#如何进行交互。...2020-06-25
  • C++调用C#的DLL程序实现方法

    本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
  • 轻松学习C#的基础入门

    轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
  • C#变量命名规则小结

    本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
  • C#绘制曲线图的方法

    这篇文章主要介绍了C#绘制曲线图的方法,以完整实例形式较为详细的分析了C#进行曲线绘制的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • c#自带缓存使用方法 c#移除清理缓存

    这篇文章主要介绍了c#自带缓存使用方法,包括获取数据缓存、设置数据缓存、移除指定数据缓存等方法,需要的朋友可以参考下...2020-06-25
  • c#中(&&,||)与(&,|)的区别详解

    这篇文章主要介绍了c#中(&&,||)与(&,|)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 经典实例讲解C#递归算法

    这篇文章主要用实例讲解C#递归算法的概念以及用法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#中list用法实例

    这篇文章主要介绍了C#中list用法,结合实例形式分析了C#中list排序、运算、转换等常见操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25