Skip to content

VS Code だけでビルド・デバッグする環境 ​

第5版作成 最終更新 (日本時間)
確認バージョン1.5.8.1

プリザンターの 公式の開発環境手順 は Visual Studio を前提にしていますが、VS Code と .NET SDK だけでもビルド・デバッグできます。 このページでは、必要なツール、接続文字列の設定、launch.json / tasks.json の構成、DB 初期化からデバッグ実行までの手順をまとめます。

INFO

.NET SDK と VS Code はクロスプラットフォームに対応しているため、Windows・macOS・Linux のいずれでもセットアップできます(データベース部分は各 OS に合わせて読み替えてください)。

全体の流れ ​

図を読み込み中…

必要なツール ​

VS Code ​

OSコマンド
Windowswinget install Microsoft.VisualStudioCode
macOSbrew install --cask visual-studio-code
Linux (Ubuntu/Debian)sudo snap install code --classic

ダウンロードページ(https://code.visualstudio.com/)からのインストールも可能です。

.NET 10 SDK ​

プリザンターのビルドには .NET 10 SDK が必要です。

OSコマンド
Windowswinget install --id=Microsoft.DotNet.SDK.10 -e
macOSbrew 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 でパッケージが見つからない場合は、公式のインストールスクリプトを使用します。

shell
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 によるバージョン管理が推奨されています。

OSVolta インストールコマンド
Windowswinget install Volta.Volta
macOS / Linuxcurl https://get.volta.sh | bash
shell
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 を使わない場合)
Windowswinget install OpenJS.NodeJS.LTS
macOSbrew install node
Linux (Ubuntu/Debian)sudo apt-get update && sudo apt-get install -y nodejs npm

VS Code 拡張機能 ​

拡張機能用途
C# Dev KitC# の開発支援(ソリューション管理・デバッグ)
C#C# 言語サポート(自動で入ります)
shell
code --install-extension ms-dotnettools.csdevkit

C# Dev Kit をインストールすると、ソリューションエクスプローラーや launch.json を使った .NET プロジェクトのデバッグが可能になります。

データベースと接続文字列 ​

データベースのセットアップは Visual Studio でも VS Code でも共通で、公式の手順に従います。プリザンターは SQL Server・PostgreSQL・MySQL のいずれかに対応しており、以下は PostgreSQL の例です。

接続文字列の設定方法は、Rds.json への直接設定と環境変数での設定の 2 つがあります。開発環境では Rds.json を直接編集する方法が手軽です。

方法 1:Rds.json を直接編集する ​

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 で管理されているファイルです。パスワードを含む変更をコミットしないように注意してください。次のコマンドを実行しておくと、変更が追跡されなくなります。

shell
git update-index --skip-worktree Implem.Pleasanter/App_Data/Parameters/Rds.json

Env.json でパラメータの参照先を変える ​

Env.json を使うと、パラメータファイルの読み込み先を別のディレクトリに変更できます。リポジトリ外にパラメータファイル一式をコピーして指定すれば、Git の追跡を気にせず設定を変更でき、機密情報を含むパラメータファイルをリポジトリ外に分離できます。

Implem.Pleasanter/App_Data/Parameters/Env.json を新規作成します。

json
{
    "ParametersPath": "C:\\MyPleasanterDev\\Parameters"
}

指定したディレクトリに App_Data/Parameters 配下のファイルをコピーし、コピー側の Rds.json などを編集します。Env.json は任意のファイルで、存在しない場合はデフォルトの App_Data/Parameters が使用されます。

方法 2:環境変数で設定する ​

Rds.json の値が空の場合、環境変数が参照されます。

powershell
# ユーザー環境変数に設定する例
[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 に渡ります)。

リポジトリのクローンとビルド ​

shell
# 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+`)でビルドします。

shell
dotnet build Implem.Pleasanter.sln -c Debug

dotnet 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 つの構成を用意します。

json
{
  "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.CodeDefinerImplem.CodeDefinerdef
Implem.CodeDefinerImplem.CodeDefiner_rds_rds
Implem.CodeDefinerImplem.CodeDefiner ConvertTime /h -9 / Implem.CodeDefiner ConvertTime /h +9:00ConvertTime
Implem.CodeDefinerImplem.CodeDefiner_splits_rdssplits_rds
Implem.CodeDefinerWSL / DockerWSL2 / Docker(_rds)での実行
Implem.PleasanterImplem.Pleasanter.NetCorehttp://localhost:59803/、ASPNETCORE_ENVIRONMENT=Development、ブラウザを起動
Implem.PleasanterIIS Express / DockerIIS Express(http://localhost:59802)/ Docker
json
{
  "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(任意) ​

よく使うビルド操作をタスクとして登録しておくと便利です。

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初期化」を選択して実行
  • ターミナルから実行
shell
dotnet run --project Implem.CodeDefiner -- _rds

CodeDefiner の出力はコンソールと logs/Implem.CodeDefiner_yyyyMMdd_HHmmss.log の両方に出ます。dotnet run で実行したときの logs はカレントディレクトリ(上の例ではリポジトリのルート)にできます。確認を省略する /y、既定のタイムゾーン・言語を書き込む /z・/l などのオプションは CodeDefiner の「オプション」を参照してください。

デバッグ実行 ​

  1. デバッグしたいコードにブレークポイントを設定する(行番号の左をクリック)
  2. デバッグパネル(Ctrl+Shift+D)で「Pleasanter: デバッグ実行」を選択して F5 で実行する
  3. プリザンターが http://localhost:59803/ で起動するので、ブラウザでアクセスしてログイン画面が表示されることを確認する

ブレークポイントを通過する操作を行うと VS Code のデバッガーが停止し、変数の確認やステップ実行ができます。

フロントエンドの開発 ​

TypeScript / SCSS の変更をリアルタイムで反映させたい場合は、別のターミナルで Vite の開発サーバーを起動します。変更が自動的にビルドされ、プリザンター側に反映されます。

shell
cd Implem.PleasanterFrontend/wwwroot
npm run dev

Visual Studio との違い ​

項目Visual StudioVS Code
ビルドGUI のビルドボタンdotnet build コマンド
デバッグプロジェクト右クリック → 開始launch.json + F5
ソリューション管理ソリューションエクスプローラーC# Dev Kit のソリューションビュー
NuGet 管理GUI のパッケージマネージャーdotnet add package コマンド
DB 初期化スタートアッププロジェクト切替launch.json で構成を切替
DB 接続設定環境変数 or Rds.jsonRds.json 直接編集が手軽

関連ページ ​

変更履歴

第5版記事の確認版を繰り返す表現を整理する
第4版CodeDefiner のデータベース作成・更新とパラメータの引き継ぎ、画面でのパラメータ管理、MCP エンドポイントのブラウザアクセスの解説と、関連する改修・設計メモを追加
第3版「内部実装を読む」を 1.5.8.1 のソースで検証して修正
第2版記事のファイル名に並び順の番号を付け、元記事リンクを frontmatter の sources に移行
第1版「内部実装を読む」に検索・内部 SQL・CRUD・タイムゾーン・開発環境を追加