2025-02-18
そのような日もある
ググってもc#の記事しか出てこないけどもちろんvb.netもvscodeでデバッグできるらしい
ビルドにはmsbuildを使用する のでvisual studio(と、必要に応じて追加のコンポーネント)をインストールしてmsbuildへのパス通しておく
デバッグ用の拡張としてC# Dev Kitをインストールしておく
ただし、こいつをインストールしていてもvb.netファイルはデバッグ対象と認識されないぽくてブレークポイントを張れないので、settings.jsonに以下記述
{
"debug.allowBreakpointsEverywhere": true
}
tasks.jsonは以下の通り
{
"version": "2.0.0",
"tasks": [
{
"label": "build helloworld",
"type": "shell",
"command": "msbuild",
"args": [
"/property:GenerateFullPaths=true",
"/p:Configuration=Debug",
"/p:Platform=x64",
"/t:build",
"/consoleloggerparameters:NoSummary",
"/p:DebugSymbols=true",
"/p:DebugType=portable",
"helloworld.sln"
],
"group": "build",
"presentation": {
"reveal": "always"
},
"problemMatcher": "$msCompile"
}
]
}
DebugType=portable
以外のDebugTypeではデバッグできない気がする
例えばfullとか指定してるとデバッグに必要なシンボルファイルの形式としてWindows PDBで出力されて、たぶんこれはC# Dev Kit
が対応していない?雰囲気がある?ので、必須な気がする
.vbproj
ファイル内でDebugType指定があるなら要らない気もする
launch.jsonは以下の通り
{
"version": "0.2.0",
"configurations": [
{
"name": "debug: .NET Framework",
"type": "clr",
"request": "launch",
"preLaunchTask": "build helloworld",
"program": "${workspaceFolder}/bin/x64/Debug/helloworld.exe",
"args": "",
"cwd": "${workspaceFolder}/bin/x64/Debug",
"console": "internalConsole",
"stopAtEntry": false,
"justMyCode": true
}
]
}
preLaunchTaskとしてtasks.jsonで記述したビルドタスク名を指定しておく
あとはvscodeで.slnファイルがあるディレクトリを開き、デバッグ開始するとビルドされてデバッグできる
以下はhello worldするだけのリポジトリ
ngmtine/helloworld
よくわからんけどデバッグできてよかったですね
おわり