ここ最近実施したVS Code の設定変更
2025年 08月 27日 水曜日
TL;DR
- Copilot Chat → ⌘Enter 送信、Enter は改行
- C# Dev Kit の自動 Runtime ダウンロードは無効化
Copilot Chat の送信キー変更
-
Keyboard Shortcuts で
workbench.action.chat.submitを ⌘Enter に割当、Enter 割当を削除 -
JSON 設定例:
{ "key": "cmd+enter", "command": "workbench.action.chat.submit", "when": "inChatInput && chatInputHasText && !chatSessionRequestInProgress" }, { "key": "enter", "command": "-workbench.action.chat.submit", "when": "inChatInput" }
C# Dev Kit の Runtime 自動インストール無効化
背景(短縮版)
- Microsoft は新機能展開とサポート簡素化のため Dev Kit 重視(OmniSharp から投資シフト)
- Dev Kit は必要な .NET Runtime を一度だけ拡張配下へダウンロード(例:
~/.vscode/extensions/ms-dotnettools.vscode-dotnet-runtime-*/.dotnet/) - これは主に解析/補完用 runtime で、あなたの
global.jsonの SDK と別物になり得る - 統合ターミナルの
dotnet buildは PATH 上のdotnetを使用し、内部プロセス(補完/テスト探索など)は拡張内 runtime を使うため警告や補完がズレることがある
無効化手順
-
Runtime 拡張を無効化
code --disable-extension ms-dotnettools.vscode-dotnet-runtime
bin/obj のデザインタイム生成物が原因で build が失敗するケース
Dev Kit (設計時ビルド / 言語サービス) が内部 runtime で走った結果、obj や bin に 別 SDK / 別 TFM 前提の中間生成物 を残し、その後あなたがターミナルで通常の dotnet build(PATH 上の SDK)を実行すると差異でエラーになることがあります。
代表的な症状 / エラー例:
| 症状 | 代表的なエラーコード |
|---|---|
期待しない TFM で生成物がある (net9.0 フォルダ等) |
NETSDK1045, NETSDK1139 |
| 参照 DLL が見つからない | CS0006 |
| 生成コード中の型が存在しない | CS0246 / CS0103 |
| NuGet 解決の不整合 | NU1105, NU1201 |
| 重複属性 (自動生成 AssemblyInfo と手書き競合) | CS0579 |
最小対処フロー(安全版):
- VS Code を一旦閉じる(ファイルロック/再生成を止める)
- ルートでクリーン:
dotnet clean - 中間生成物を完全削除:
find . -type d \( -name bin -o -name obj \) -prune -exec rm -rf {} +global.jsonの SDK が期待通りか確認し、その SDK をロードしたシェルからcode .- 再度
dotnet restore && dotnet build
この記事をシェア