VS Code だけでビルド・デバッグする環境
プリザンターの 公式の開発環境手順 は Visual Studio を前提にしていますが、VS Code と .NET SDK だけでもビルド・デバッグできます。 このページでは、必要なツール、接続文字列の設定、launch.json / tasks.json の構成、DB 初期化からデバッグ実行までの手順をまとめます。
INFO
.NET SDK と VS Code はクロスプラットフォームに対応しているため、Windows・macOS・Linux のいずれでもセットアップできます(データベース部分は各 OS に合わせて読み替えてください)。
全体の流れ
図を読み込み中…
必要なツール
VS Code
| OS | コマンド |
|---|---|
| Windows | winget install Microsoft.VisualStudioCode |
| macOS | brew install --cask visual-studio-code |
| Linux (Ubuntu/Debian) | sudo snap install code --classic |
ダウンロードページ(https://code.visualstudio.com/)からのインストールも可能です。
.NET 10 SDK
プリザンターのビルドには .NET 10 SDK が必要です。
| OS | コマンド |
|---|---|
| Windows | winget install --id=Microsoft.DotNet.SDK.10 -e |
| macOS | brew install --cask dotnet-sdk |
| Linux (Ubuntu/Debian) | sudo apt-get update && sudo apt-get install -y dotnet-sdk-10.0 |
ダウンロードページ(https://dotnet.microsoft.com/download/dotnet/10.0)からのインストールも可能です。Linux でパッケージが見つからない場合は、公式のインストールスクリプトを使用します。
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel 10.0インストール後、dotnet --version で 10.0.100 以上が表示されることを確認します(1.5.8.1 のソースの global.json は SDK 10.0.100、rollForward: latestFeature を指定しています。global.json)。
WARNING
プリザンターの global.json で SDK バージョンが指定されています。rollForward: latestFeature が設定されているため 10.0.1xx 系であれば動作しますが、メジャーバージョンは一致させる必要があります。
Node.js
フロントエンドは TypeScript + Vite で構成されており、ビルド時に npm run build が自動実行されるため Node.js が必要です。公式では Volta によるバージョン管理が推奨されています。
| OS | Volta インストールコマンド |
|---|---|
| Windows | winget install Volta.Volta |
| macOS / Linux | curl https://get.volta.sh | bash |
volta install node@latest確認したソースでは、Implem.PleasanterFrontend/wwwroot/package.json の volta で Node.js 24.18.0・npm 11.6.4 が指定されています。Volta を使っていれば、このフォルダでは自動的にそのバージョンが使われます(package.json#L77-L80)。
Volta を使わない場合は https://nodejs.org/ から直接インストールするか、各 OS のパッケージマネージャーを使用します。
| OS | コマンド(Volta を使わない場合) |
|---|---|
| Windows | winget install OpenJS.NodeJS.LTS |
| macOS | brew install node |
| Linux (Ubuntu/Debian) | sudo apt-get update && sudo apt-get install -y nodejs npm |
VS Code 拡張機能
| 拡張機能 | 用途 |
|---|---|
| C# Dev Kit | C# の開発支援(ソリューション管理・デバッグ) |
| C# | C# 言語サポート(自動で入ります) |
code --install-extension ms-dotnettools.csdevkitC# Dev Kit をインストールすると、ソリューションエクスプローラーや launch.json を使った .NET プロジェクトのデバッグが可能になります。
データベースと接続文字列
データベースのセットアップは Visual Studio でも VS Code でも共通で、公式の手順に従います。プリザンターは SQL Server・PostgreSQL・MySQL のいずれかに対応しており、以下は PostgreSQL の例です。
接続文字列の設定方法は、Rds.json への直接設定と環境変数での設定の 2 つがあります。開発環境では Rds.json を直接編集する方法が手軽です。
方法 1:Rds.json を直接編集する
{
"Dbms": "PostgreSQL",
"Provider": "Local",
"SaConnectionString": "Server=localhost;Database=postgres;UID=postgres;PWD=実際のパスワード",
"OwnerConnectionString": "Server=localhost;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=実際のパスワード",
"UserConnectionString": "Server=localhost;Database=#ServiceName#;UID=#ServiceName#_User;PWD=実際のパスワード",
"SqlCommandTimeOut": 0,
"MinimumTime": 3,
"DeadlockRetryCount": 4,
"DeadlockRetryInterval": 1000,
"DisableIndexChangeDetection": true,
"SysLogsSchemaVersion": 1,
"MySqlConnectingHost": "%"
}パスワードをコミットしない
Rds.json は Git で管理されているファイルです。パスワードを含む変更をコミットしないように注意してください。次のコマンドを実行しておくと、変更が追跡されなくなります。
git update-index --skip-worktree Implem.Pleasanter/App_Data/Parameters/Rds.jsonEnv.json でパラメータの参照先を変える
Env.json を使うと、パラメータファイルの読み込み先を別のディレクトリに変更できます。リポジトリ外にパラメータファイル一式をコピーして指定すれば、Git の追跡を気にせず設定を変更でき、機密情報を含むパラメータファイルをリポジトリ外に分離できます。
Implem.Pleasanter/App_Data/Parameters/Env.json を新規作成します。
{
"ParametersPath": "C:\\MyPleasanterDev\\Parameters"
}指定したディレクトリに App_Data/Parameters 配下のファイルをコピーし、コピー側の Rds.json などを編集します。Env.json は任意のファイルで、存在しない場合はデフォルトの App_Data/Parameters が使用されます。
方法 2:環境変数で設定する
Rds.json の値が空の場合、環境変数が参照されます。
# ユーザー環境変数に設定する例
[Environment]::SetEnvironmentVariable(
"Implem.Pleasanter_Rds_PostgreSQL_SaConnectionString",
"Server=localhost;Database=postgres;UID=postgres;PWD={SA用パスワード}",
"User")
[Environment]::SetEnvironmentVariable(
"Implem.Pleasanter_Rds_PostgreSQL_OwnerConnectionString",
"Server=localhost;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD={Owner用パスワード}",
"User")
[Environment]::SetEnvironmentVariable(
"Implem.Pleasanter_Rds_PostgreSQL_UserConnectionString",
"Server=localhost;Database=#ServiceName#;UID=#ServiceName#_User;PWD={User用パスワード}",
"User")プレースホルダーは実際のパスワードに置き換えてください。環境変数の設定後は VS Code を再起動する必要があります。
環境変数の名前の PostgreSQL の部分は Rds.json の Dbms の値です。Dbms 自体を環境変数で切り替える仕組みは 1.5.8.1 には無いため、PostgreSQL や MySQL を使うときは Rds.json の Dbms を書き換えます。環境変数を探す順序は パラメータ の「読み込みのしくみ」を参照してください。
VS Code の統合ターミナルだけに環境変数を渡したい場合は、.vscode/settings.json の terminal.integrated.env.windows / terminal.integrated.env.linux に書く方法もあります(統合ターミナルから実行した dotnet run に渡ります)。
リポジトリのクローンとビルド
# 1. リポジトリをクローン
git clone https://github.com/Implem/Implem.Pleasanter
cd Implem.Pleasanter
# 2. フロントエンドの依存関係をインストール
cd Implem.PleasanterFrontend/wwwroot
npm install
cd ../..
# 3. VS Code でソリューションフォルダを開く
code .リポジトリのルートを開くと、C# Dev Kit がソリューションファイル Implem.Pleasanter.sln を自動的に検出します。
統合ターミナル(Ctrl+`)でビルドします。
dotnet build Implem.Pleasanter.sln -c Debugdotnet build を実行すると、Implem.PleasanterFrontend プロジェクトの MSBuild ターゲットでフロントエンドのビルド(npm run build)も自動実行されます。確認したソースでは、C# のビルドの前(BeforeTargets="Build")に NpmInstall → NpmBuild の順で動き、package.json / package-lock.json が更新されていれば npm install も自動で実行されます(Implem.PleasanterFrontend.csproj#L21-L29、Implem.PleasanterFrontend.csproj#L143-L152)。初回ビルドには 1〜2 分程度かかります。-c Debug を省略した場合もデフォルトで Debug 構成が使われ、Release ビルドが必要な場合は -c Release を指定します。
デバッグ設定
launch.json
リポジトリのルートに .vscode/launch.json を作成します。プリザンター本体のデバッグ実行と、CodeDefiner の DB 初期化(_rds)・コード定義(def)の 3 つの構成を用意します。
{
"version": "0.2.0",
"configurations": [
{
"name": "Pleasanter: デバッグ実行",
"type": "dotnet",
"request": "launch",
"projectPath": "${workspaceFolder}/Implem.Pleasanter/Implem.Pleasanter.csproj"
},
{
"name": "CodeDefiner: DB初期化",
"type": "dotnet",
"request": "launch",
"projectPath": "${workspaceFolder}/Implem.CodeDefiner/Implem.CodeDefiner.csproj",
"args": ["_rds"]
},
{
"name": "CodeDefiner: コード定義",
"type": "dotnet",
"request": "launch",
"projectPath": "${workspaceFolder}/Implem.CodeDefiner/Implem.CodeDefiner.csproj",
"args": ["def"]
}
]
}launchSettings.json のプロファイルを使う
launch.json を書かなくても、各プロジェクトの Properties/launchSettings.json にあるプロファイルを使えます。launch.json の構成に "launchSettingsProfile": "Implem.CodeDefiner_rds" のように書くと、そのプロファイルの引数・環境変数で起動します。1.5.8.1 のソースにあるプロファイルは次のとおりです(Implem.CodeDefiner/Properties/launchSettings.json、Implem.Pleasanter/Properties/launchSettings.json)。
| プロジェクト | プロファイル | 内容 |
|---|---|---|
| Implem.CodeDefiner | Implem.CodeDefiner | def |
| Implem.CodeDefiner | Implem.CodeDefiner_rds | _rds |
| Implem.CodeDefiner | Implem.CodeDefiner ConvertTime /h -9 / Implem.CodeDefiner ConvertTime /h +9:00 | ConvertTime |
| Implem.CodeDefiner | Implem.CodeDefiner_splits_rds | splits_rds |
| Implem.CodeDefiner | WSL / Docker | WSL2 / Docker(_rds)での実行 |
| Implem.Pleasanter | Implem.Pleasanter.NetCore | http://localhost:59803/、ASPNETCORE_ENVIRONMENT=Development、ブラウザを起動 |
| Implem.Pleasanter | IIS Express / Docker | IIS Express(http://localhost:59802)/ Docker |
{
"version": "0.2.0",
"configurations": [
{
"name": "Implem.Pleasanter",
"type": "dotnet",
"request": "launch",
"projectPath": "${workspaceFolder}/Implem.Pleasanter/Implem.Pleasanter.csproj",
"launchSettingsProfile": "Implem.Pleasanter.NetCore"
},
{
"name": "Implem.CodeDefiner (_rds)",
"type": "dotnet",
"request": "launch",
"projectPath": "${workspaceFolder}/Implem.CodeDefiner/Implem.CodeDefiner.csproj",
"launchSettingsProfile": "Implem.CodeDefiner_rds"
}
]
}tasks.json(任意)
よく使うビルド操作をタスクとして登録しておくと便利です。
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/Implem.Pleasanter.sln",
"-c",
"Debug"
],
"problemMatcher": "$msCompile",
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "frontend: install",
"type": "shell",
"command": "npm install",
"options": {
"cwd": "${workspaceFolder}/Implem.PleasanterFrontend/wwwroot"
},
"problemMatcher": []
},
{
"label": "frontend: dev",
"type": "shell",
"command": "npm run dev",
"options": {
"cwd": "${workspaceFolder}/Implem.PleasanterFrontend/wwwroot"
},
"isBackground": true,
"problemMatcher": []
}
]
}データベースの初期化
初回セットアップ時はデータベースの初期化が必要です。次のどちらかで CodeDefiner を実行し、ターミナルの表示に従って操作します。
- デバッグパネル(
Ctrl+Shift+D)から「CodeDefiner: DB初期化」を選択して実行 - ターミナルから実行
dotnet run --project Implem.CodeDefiner -- _rdsCodeDefiner の出力はコンソールと logs/Implem.CodeDefiner_yyyyMMdd_HHmmss.log の両方に出ます。dotnet run で実行したときの logs はカレントディレクトリ(上の例ではリポジトリのルート)にできます。確認を省略する /y、既定のタイムゾーン・言語を書き込む /z・/l などのオプションは CodeDefiner の「オプション」を参照してください。
デバッグ実行
- デバッグしたいコードにブレークポイントを設定する(行番号の左をクリック)
- デバッグパネル(
Ctrl+Shift+D)で「Pleasanter: デバッグ実行」を選択してF5で実行する - プリザンターが
http://localhost:59803/で起動するので、ブラウザでアクセスしてログイン画面が表示されることを確認する
ブレークポイントを通過する操作を行うと VS Code のデバッガーが停止し、変数の確認やステップ実行ができます。
フロントエンドの開発
TypeScript / SCSS の変更をリアルタイムで反映させたい場合は、別のターミナルで Vite の開発サーバーを起動します。変更が自動的にビルドされ、プリザンター側に反映されます。
cd Implem.PleasanterFrontend/wwwroot
npm run devVisual Studio との違い
| 項目 | Visual Studio | VS Code |
|---|---|---|
| ビルド | GUI のビルドボタン | dotnet build コマンド |
| デバッグ | プロジェクト右クリック → 開始 | launch.json + F5 |
| ソリューション管理 | ソリューションエクスプローラー | C# Dev Kit のソリューションビュー |
| NuGet 管理 | GUI のパッケージマネージャー | dotnet add package コマンド |
| DB 初期化 | スタートアッププロジェクト切替 | launch.json で構成を切替 |
| DB 接続設定 | 環境変数 or Rds.json | Rds.json 直接編集が手軽 |