1. 程式人生 > 程式設計 >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鍵除錯程式,結果成功顯示如下:

在這裡插入圖片描述

在這裡插入圖片描述

問題總結:

整個過程經歷了兩天才成功,困擾最大的是在除錯過程中,終端(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內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!