Skip to content

MS_CSharpForVSCode

nishi_74322014 edited this page Aug 21, 2026 · 1 revision

CSharp for Visual Studio Code

概要

移行メモ(原文の構成): 移行元のページは
概要・詳細の本文が乏しく、図を中心とした記録である。
図(Win-1〜3)は本文中の該当箇所に配置し、
不足する説明を補足として加えた。

Visual Studio Code の C# 拡張機能。

補足(この拡張が何をするか): OmniSharp で述べた通り、
VS Code に C# の「言語サービス」を与えるものである。

【拡張機能なしの VS Code】
   .cs ファイルは【ただのテキスト】
     → 色付けすらまばら、補完なし、エラー検出なし

【C# 拡張を入れると】
   ・IntelliSense(補完、シグネチャ ヘルプ)
   ・定義へ移動 / 参照の検索 / 名前の変更
   ・エラー・警告のリアルタイム表示
   ・【デバッグ】(ブレークポイント、ステップ実行、ウォッチ)★
   ・コード修正(Code Fix)、リファクタリング
   ・.editorconfig によるスタイル適用

なぜ拡張が要るのか——
VS Code 本体は言語を知らない(エディタの枠組みだけを提供する)
という設計だからである。
これが OmniSharp で触れた LSP の発想である。

詳細

インストール

C# for Visual Studio Code のインストール

C# for Visual Studio Code の設定

C# for Visual Studio Code の動作

補足(現在の拡張機能の構成): 原文の時代から
拡張機能の構成が大きく変わったため、整理しておく。

拡張機能 ID 役割 ライセンス
C# ms-dotnettools.csharp 言語サービス・デバッガ(必須) MIT
C# Dev Kit ms-dotnettools.csdevkit ソリューション管理・テスト エクスプローラー VS のライセンスに準拠
IntelliCode for C# Dev Kit ms-dotnettools.vscodeintellicode-csharp AI 補完 同上
.NET Install Tool ms-dotnettools.vscode-dotnet-runtime ランタイムの自動取得 MIT
【重要:ライセンスに注意】★
   ・「C#」拡張だけなら【MIT ライセンス】で誰でも使える
   ・「C# Dev Kit」は【Visual Studio のライセンス条件】に従う
       → 個人・OSS・小規模企業は無償
       → 一定規模以上の企業では【VS のライセンスが必要】
   → 組織で導入する前に確認すること
     ([Visual Studio CodeによるSPA開発](MS_VSCodeSPADevelopment) にも記載)

言語サービスの実装も変わったOmniSharp 参照)。

~2023   OmniSharp(omnisharp-roslyn)
2023~   【Roslyn ベースの新しい言語サーバ】★
           → Visual Studio 本体と同じ基盤
           → 起動が速く、大規模ソリューションで安定
           → 設定 "dotnet.server.useOmnisharp" で旧実装に戻せるが、非推奨

使い方

補足(最小限の使い方): 原文に手順の記載がないため、
現在の標準的な流れを補っておく。

# ① プロジェクトを作る(CLI で行う)
dotnet new console -o MyApp
code MyApp

# ② VS Code が「ビルドとデバッグに必要な資産を追加しますか?」と聞く
#    → はい を選ぶと .vscode/tasks.json と launch.json が生成される ★
// .vscode/launch.json(生成されるもの)
{
  "version": "0.2.0",
  "configurations": [{
    "name": ".NET Core Launch (console)",
    "type": "coreclr",
    "request": "launch",
    "preLaunchTask": "build",
    "program": "${workspaceFolder}/bin/Debug/net8.0/MyApp.dll",
    "console": "integratedTerminal"      // ← 標準入力を使うなら必須 ★
  }]
}
【つまずきやすい点】
 ① 【フォルダを開く位置】
     .sln / .csproj のあるフォルダを開く
     → 上位フォルダを開くと、プロジェクトを認識しないことがある

 ② 【console の設定】
     既定の "internalConsole" では【Console.ReadLine が効かない】★
     → "integratedTerminal" にする

 ③ 【複数プロジェクト】
     .sln があれば認識される
     → C# Dev Kit を入れると「ソリューション エクスプローラー」が使える

 ④ 【SDK の版】
     global.json で固定していると、その版が入っていないと動かない

Visual Studio との違い

補足(使い分け): Visual Studio
どちらを使うべきかは頻出の問いなので整理しておく。

観点 Visual Studio VS Code + C# 拡張
起動・動作 重い 軽快
デバッグ 最も強力(エディット&コンティニュー、メモリ ウィンドウ、並列スタック) 基本的な機能は揃う
デザイナ WinForms / WPF のデザイナあり なし
プロファイラ / 診断 統合済み 外部ツール
フロントエンド開発 快適
リモート開発 限定的 WSL / SSH / コンテナが得意
OS Windows のみ(Mac 版は終了) Win / Mac / Linux
価格 Community は条件付き無償 本体は無償
【使い分けの目安】
   ・WinForms / WPF の画面設計がある     → Visual Studio(デザイナが要る)
   ・大規模ソリューション、詳細な診断     → Visual Studio
   ・ASP.NET Core の API 開発            → どちらでもよい
   ・SPA との同時開発、Mac/Linux         → 【VS Code】★
   ・コンテナ / WSL 上での開発            → 【VS Code】
   ・CI で動くコードの確認                → どちらでも(CLI が本体)

重要な前提:

【ビルドは IDE の機能ではない】
   dotnet build / dotnet test が本体であり、
   Visual Studio も VS Code もそれを呼んでいるだけ ★

 → 【どちらを使っても同じ成果物になる】
 → チーム内で IDE を統一する必要はない
 → .editorconfig でコード スタイルだけ揃えれば十分
   ([Web Essentials](MS_WebEssentials) の「エディタに依存させない」)

参考

Microsoft Learn


Tags: 移行, プログラミング, ツール類

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally