歡迎光臨
每天分享高質量文章

使用 dotnet 命令列配合 vscode 完成一個完整 .NET 解決方案的編寫和除錯

如果你是開發個人專案,那就直接用 Visual Studio Community 版本吧,對個人免費,對小團體免費,不需要這麼折騰。

如果你是 Mac / Linux 用戶,不想用 Visual Studio for Mac 版;或者不想用 Visual Studio for Windows 版那麼重磅的 IDE 來開發簡單的 .NET Core 程式;或者你就是想像我這麼折騰,那我們就開始吧!


 

  1. 點擊這裡下載正式或者預覽版的 .NET Core 然後安裝
  2. 點擊這裡下載 Visual Studio Code 然後安裝
  3. 在 Visual Studio Code 里安裝 C# for Visual Studio Code 插件(步驟如下圖所示)

搜索的時候,推薦使用 OmniSharp 關鍵字,因為這可以得到唯一的結果,你不會弄混淆。如果你使用 C# 作為關鍵字,那需要小心,你得找到名字只有 C#,點開之後是 C# for Visual Studio Code 的那款插件。因為可能裝錯,所以我不推薦這麼做。

對於新版的 Visual Studio Code,裝完會自動啟用,所以你不用擔心。我們可以後續步驟了。

準備一個空的檔案夾,這個檔案夾將會成為我們解決方案所在的檔案夾,也就是 sln 檔案所在的檔案夾。在這個空的檔案夾中打開 VSCode,然後打開 VSCode 的終端。

在 VSCode 中的終端中輸入:

> dotnet new console -o Walterlv.Demo

這樣會在當前的檔案夾中創建一個 Walterlv.Demo 的子檔案夾,並且在此檔案夾中新建一個名為 Walterlv.Demo 的控制台專案。

如果你觀察我們剛剛創建的專案,你會發現裡面有一個 csproj 檔案和一個 Program.cs 檔案。csproj 檔案是 Sdk 風格的專案檔案,而 Program.cs 裡面包含最簡單的 Hello World 代碼:

using System;

namespace Walterlv.Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

我們會考慮在一個子檔案夾中創建專案,是因為我們會一步步創建一個比較複雜的解決方案,用以演示比較完整的使用 VSCode 開發 .NET 程式的過程。

 

我們現在創建一個在 Visual Studio 會特別熟悉的解決方案,sln 檔案。

使用以下命令創建一個解決方案檔案:

現在,這個解決方案檔案還是空的,不包含任何專案,於是我們把我們一開始創建的 Walterlv.Demo 專案加入到此 sln 檔案中。

使用以下命令添加:

> dotnet sln add .\Walterlv.Demo\Walterlv.Demo.csproj

於是,我們的解決方案中,就存在一個可以運行的控制台專案了。

 

理論上,你按下 F5,選擇 .NET Core 後就能自動生成除錯所需的 launch.json 和 tasks.json 檔案:

  • 讓你的 VSCode 具備除錯 C# 語言 .NET Core 程式的能力

如果不能生成所需的檔案,你可以使用以下博客中的方法,手動添加這兩個檔案:

  • 手工編輯 tasks.json 和 launch.json,讓你的 VSCode 具備除錯 .NET Core 程式的能力

在經過以上兩篇博客中的方法之後,你將可以跑起來你的程式。

如果遇到了編譯錯誤……呃這麼簡單的程式怎麼可能遇到編譯錯誤呢?一定是因為之前的操作有問題。可以考慮刪除 bin 和 obj 檔案夾,然後輸入以下命令自行編譯:

這個命令會還原 NuGet 包,然後使用 .NET Core 版本的 MSBuild 編譯你的解決方案。在此之後,你並不需要總是輸入此命令,只需要像 Visual Studio 一樣按下 F5 即可除錯。

 

現在我們演示如何取用專案。

首先使用以下命令創建一個類庫專案:

> dotnet new classlib -o Walterlv.Library

將其添加到 sln 中。

> dotnet sln add .\Walterlv.Library\Walterlv.Library.csproj

於是我們的目錄結構現在是這樣的(稍微改了一點代碼)。

然後讓我們的 Walterlv.Demo 專案取用這個剛剛創建的專案:

> dotnet add Walterlv.Demo reference .\Walterlv.Library\

現在,我們即可在 Program.cs 中使用到剛剛 Class1.cs 中編寫的方法(見上面截圖中寫的方法)。

不過,當你寫下 Class1 後,會沒有此名稱,但有快速操作提示可以自動添加命名空間(就像沒有裝 ReSharper 的 Visual Studio 的效果一樣)。

這時再按下 F5 運行,可以看到多輸出了一個 walterlv is a 逗比 這樣的提示,我們成功使用到了剛剛取用的類。

 

接下來介紹如何取用 NuGet 包。

> dotnet add Walterlv.Demo package Newtonsoft.Json

這樣可以給 Walterlv.Demo 專案取用 Newtonsoft.Json 包。

接下來就像前面一節我們所描述的那樣使用這個包裡面的類就好了。

原文地址:https://blog.walterlv.com/post/develop-an-app-using-vscode-and-dotnet-cli.html

已同步到看一看
赞(0)

分享創造快樂