Visual Studio CodeでC#書くよ

や、書きたくはないのだが。Viaual Studioとかいう世界最強のIDEを諸事情で使えず、仕方なくVisual Studio Codeで書きたい人向けに。

目次

  1. Visual Studio Codeのインストール
  2. .net core SDKのインストール
  3. VScode拡張のインストール
  4. プロジェクトを作成する
  5. デバッグ(ブレークポイント)
  6. おまけ(プロキシ認証)

Visual Studio Codeのインストール

https://azure.microsoft.com/ja-jp/products/visual-studio-code/
ここから適当な環境にあったものをDLしてインストール。User/Systemだが、自宅で一人で使うPCならSystem、会社など(特にAD環境のVMとか)ではUserで。

.net core SDKのインストール

https://dotnet.microsoft.com/download
ここの.NET Core 3.xのSDKをダウンロードしてインストール。ところで、.netって英小文字って覚えていたのだがいつの間にか英大文字になったの?

VScodeのTerminalでversion/infoを確認。や、cmd.exeでもいいけど。

PS E:\> dotnet --version
3.1.401
PS E:\> dotnet --info   
.NET Core SDK (global.json を反映):
 Version:   3.1.401     
 Commit:    5b6f5e5005  

ランタイム環境:
 OS Name:     Windows   
 OS Version:  10.0.18363
 OS Platform: Windows   
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.1.401\

Host (useful for support):
  Version: 3.1.7
  Commit:  fcfdef8d6b

.NET Core SDKs installed:
  1.0.0-preview2-003131 [C:\Program Files\dotnet\sdk]
  1.0.0-preview2-003156 [C:\Program Files\dotnet\sdk]
  2.1.602 [C:\Program Files\dotnet\sdk]
  2.1.701 [C:\Program Files\dotnet\sdk]
  2.1.801 [C:\Program Files\dotnet\sdk]
  2.2.202 [C:\Program Files\dotnet\sdk]
  2.2.301 [C:\Program Files\dotnet\sdk]
  2.2.401 [C:\Program Files\dotnet\sdk]
  3.1.401 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.21 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.21 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 1.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.21 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.7 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

VScode拡張のインストール

こんな感じ。必須なのはC#のみ(デバッグもこれ)なので、あとはお好みで。

プロジェクトを作成する

https://docs.microsoft.com/ja-jp/dotnet/core/tools/dotnet
.net Core CLIの使い方はここに全て載ってます。Visual Studioさんという世界最強のIDE様はなーんでもボタン一つで自動でやってくれましたが、諸君らはちんたらコマンド叩きまくる必要があるので覚えておきましょう。や、覚えなくていい、上のページをブックマークしよう。

適当なディレクトリを作り、その中にプロジェクトを作成します。余談ですが、私はVScode環境ではソリューション作りません。そんな規模(テストプロジェクト必須とか)になったら世界最強のIDEであるVisual Studioを買ってもらいましょう。

PS E:\VScodeProjects> dotnet new winforms --name TestWindowsForms
Getting ready...
The template "Windows Forms (WinForms) Application" was created successfully.

Processing post-creation actions...
Running 'dotnet restore' on TestWindowsForms\TestWindowsForms.csproj...
  復元対象のプロジェクトを決定しています...
  E:\VScodeProjects\TestWindowsForms\TestWindowsForms.csproj を復元しました (130 ms)。

Restore succeeded.

ここではWindows.Formsテンプレートを使用してプロジェクトを作成しました。どんなテンプレートがあるかは下記を読みましょう。
https://docs.microsoft.com/ja-jp/dotnet/core/tools/dotnet-new

上で作ったプロジェクトのディレクトリを、エクスプローラ上から右クリック->"Codeで開く"などをして開きます。すると、

Required assets to build and debug are missing from 'TestWindowsForms'. Add them?

みたいな通知が来ますのでYesを押すと、必要なファイルを.vscodeディレクトリに生成してくれます。こんな状態で雛形が出来上がっています。

デバッグ(ブレークポイント)

適当にブレークポイントを打ってF5で実行します。Visual Studio同様、変数やウォッチ式で見ることが出来ます。ただ、やはりと言っては失礼だがモッサリモサモサしてる。

おまけ(プロキシ認証)

最近、VScodeのバージョンが上がるたびにプロキシ認証Windowがバグってるんですよね……。あ、rubyのgemとかとは違って、Nugetパッケージマネージャーで何らかのパッケージを使っている時、terminalでset_http_proxyとかしてもビルド時にコケます。VScode自体のプロキシ認証設定、あとNuget自体にプロキシ認証設定をする必要があります。VScodeは設定画面で登録できるので良いのですが、NugetはまずNuget.exeを拾ってきて(*1)下記のように叩くと無事にビルドできるはずです。

NuGet.exe config -set http_proxy=http://proxy-auth-server:3021
NuGet.exe config -set http_proxy.user=USER_NAME
NuGet.exe config -set http_proxy.password=PASSWORD

C:\Users\<USER_NAME>\AppData\Roaming\NuGet\NuGet.Config に記述が追加(パスワードはシャドウ化)されているはずです。

*1) https://docs.microsoft.com/ja-jp/nuget/install-nuget-client-tools