VSCodeでC#のプロジェクトのデバッグ実行とインテリセンスが機能しなくなりました。
.vscodeが自動作成されていないようなので手動で作成できないかと思い、過去のプロジェクトフォルダの.vscodeを眺めてみました。
その1:WPFプロジェクト
ファイル名:launch.json
{
"version": "0.2.0",
"configurations": [
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/bin/Debug/net5.0-windows/BilateralFilter.dll",
"args": [],
"cwd": "${workspaceFolder}",
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach"
}
]
}
ファイル名:tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/BilateralFilter.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "publish",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/BilateralFilter.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "watch",
"command": "dotnet",
"type": "process",
"args": [
"watch",
"run",
"${workspaceFolder}/BilateralFilter.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
}
]
}
その2:WPFプロジェクト
ファイル名:launch.json
{
"version": "0.2.0",
"configurations": [
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/bin/Debug/net6.0-windows/BitmapReadSpeed.dll",
"args": [],
"cwd": "${workspaceFolder}",
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach"
}
]
}
ファイル名:tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/BitmapReadSpeed.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "publish",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/BitmapReadSpeed.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "watch",
"command": "dotnet",
"type": "process",
"args": [
"watch",
"run",
"--project",
"${workspaceFolder}/BitmapReadSpeed.csproj"
],
"problemMatcher": "$msCompile"
}
]
}
その1とその2の違い
ファイル名:launch.json
"program": "${workspaceFolder}/bin/Debug/net5.0-windows/BilateralFilter.dll",
"program": "${workspaceFolder}/bin/Debug/net6.0-windows/BitmapReadSpeed.dll",
13行目:出力するdllのパス、フレームワークのバージョン
ファイル名:tasks.json
"${workspaceFolder}/BilateralFilter.csproj",
"${workspaceFolder}/BitmapReadSpeed.csproj",
10,22行目:プロジェクトファイルのパス
"${workspaceFolder}/BilateralFilter.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
"--project",
"${workspaceFolder}/BitmapReadSpeed.csproj"
35-37行目:プロジェクトファイルのパス。argsなのでデバッグ実行時の引数か?
概ねフレームワークやプロジェクト名の違いだけのような感じです。新たにWPFのプロジェクトを作成し.vscodeをコピーしフレームワークやプロジェクト名を変更してみます。
結果として、F5によるデバッグ実行は出来ました。インテリセンスはダメでした。
仕方が無いのでVisutal Studio 2022をインストールすることにします。
以上
追記
拡張機能のC#の設定をいじっていたデバッグ実行とインテリセンスが使えるようになりました。
Dotnet > Server: UseOmnisharp
チェックつける
Omnisharp: Dot Net Cli Paths
dotnet.exeのパスをセット(net6.0)
項目の意味は理解していませんので、なぜ使えるようになったかは不明ですが、とりあえず使えれば良い人なのでこのまま使います。別のPCでも再現できるか調査予定。
コメント