インストール - Rider
概要
JetBrains Riderは、IntelliJプラットフォームとReSharperをベースにしたクロスプラットフォームの.NET IDEである。
Riderは、C#、.NET、ASP.NET、Unity等を使用したソフトウェア開発に対応している。
コード補完、コード検査、リファクタリング、デバッグ等の機能を統合しており、ソリューションおよびプロジェクトの構成を解析して、効率的な開発を支援する。
JS、CSS、HTML等のWeb開発関連プラグインも利用できる。
そのため、.NETによるWebシステム開発を同じ環境で行うことができる。
また、Riderは、Avalonia UIやUno Platformを使用したクロスプラットフォームアプリケーションの開発にも利用できる。
プロジェクトの実行構成を変更して、外部コンソールでアプリケーションを実行することもできる。
さらに、ACP (Agent Client Protocol)を使用して、AI ChatからOpenCodeをコーディングエージェントとして利用できる。
ただし、大規模なプロジェクトでは、ファイル監視に必要なウォッチハンドル数の調整が必要になる場合がある。
Riderのインストール
Jetbrains Riderの公式サイトからRiderをダウンロードする。
ダウンロードしたファイルを解凍する。
tar -xf JetBrains-Rider-<バージョン>.tar.gz
次に、デスクトップエントリファイルを作成する。
vi ~/.local/applications/JetBrains_Rider.desktop
# ~/.local/applications/JetBrains_Rider.desktopファイル
[Desktop Entry]
Type=Application
Name=Rider <バージョン>
GenericName=Rider
Comment=Develop with pleasure
Exec=/<Riderのインストールディレクトリ>/bin/rider.sh %F
Icon=/<Riderのインストールディレクトリ>/bin/rider.png
StartupWMClass=jetbrains-rider
Terminal=false
Categories=Development;IDE;
ウォッチハンドルの設定
今日のIDEでは、VCSやビルドツール、コードジェネレータ等による変更等、外部からファイルの変更を把握することが不可欠である。
そのため、IntelliJプラットフォームでは、そのような変更を監視するためのバックグラウンドプロセスを実行している。
この方法は各プラットフォームで異なり、Linuxにおいては、Inotify機能を使用している。
Inotify機能において、プロジェクト内の各ディレクトリにウォッチハンドルを設定する必要がある。
しかし、ウォッチハンドルの初期値は、プロジェクトによっては十分ではない可能性がある。
IntelliJプラットフォームでは、ウォッチハンドルの制限に達する場合、ディレクトリツリーの再帰的なスキャンに戻ってしまう。
この状況を防ぐためには、ウォッチの上限を増加させることを推奨する。(例. 512K)
/etc/sysctl.confファイルまたは/etc/sysctl.d/ディレクトリに*.confファイル(例. idea.conf)に、以下の設定を追加する。
sudo vi /etc/sysctl.conf または sudo vi /etc/sysctl.d/idea.conf
# /etc/sysctl.confファイル または /etc/sysctl.d/idea.confファイル fs.inotify.max_user_watches = 1048576
上記の変更を適用するため、以下のコマンドを実行する。
sudo sysctl -p --system
Riderを起動している場合は、Riderを再起動する。
現在の設定を確認する場合は、以下に示すコマンドを実行する。
sudo sysctl fs.inotify.max_user_watches
※注意
監視制限はユーザごとの設定である。
もし、同一ユーザでInotifyを使用している他のソフトウェアが動作している場合は、全てのソフトウェアのニーズに合うように制限値を高くする必要がある。
一部のLinuxディストリビューションでは、この設定を /usr/lib/sysctl.d ディレクトリ配下のファイルで構成する場合がある。
これらのディレクトリ内のファイルはファイル名の順序で読み込まれるため、/etc/sysctl.d/idea.conf を使用してシステム設定を上書きし、優先度の高い設定を適用できる。
Riderの起動
cd /<Riderのインストールディレクトリ>/bin ./rider.sh
Riderの設定
行番号と空白文字の表示
[File] - [Settings] - [Editor] - [General] - [Appearance]を選択する。
[Show line numbers]チェックボックスと[Show whitespaces]チェックボックスにチェックを入力する。
Samba上にプロジェクトを置く場合
External file changes sync may be slowを表示させないために、
[File] - [Settings] - [Appearance & Behavior] - [Notifications]から[File Watcher Messages]を[No popup]にする。
エラー関連
複数の.NET SDKをインストールしている場合、インストールされている最新の.NET SDKが強制的に使用される場合がある。
この時、プロジェクトディレクトリのトップディレクトリに対して、以下のコマンドを実行する。
dotnet new globaljson --force --sdk-version <.NET SDKのバージョン 例. 5.0.403>
別の方法として、global.jsonファイルのrollForwardをmajorに変更する、または、rollForwardを削除する。
// global.jsonファイル
{
"sdk": {
"version": "5.0",
"rollForward": "major",
"allowPrerelease": false
}
}
// または
{
"sdk": {
"version": "5.0",
"allowPrerelease": false
}
}
Riderの日本語化
Rider 2023.1(EAP2)以降、日本語化プラグインで日本語にローカライズ可能である。
- JetBrainsの公式Webサイトから、Japanese Language Packプラグインをダウンロードする。
この時、zipファイルは解凍しないことに注意する。 - ダウンロードしたプラグインファイルを、<Riderのインストールディレクトリ>/pluginsディレクトリに配置する。
- Riderのメイン画面のメニューバーから、[Settings]または[Preferences] - [Plugins]を選択する。
- [Settings]画面の上側にある歯車ボタンから、[Install Plugin from Disk...]を選択する。
- 上記でダウンロードしたJapanese Language Packプラグインファイルを選択してインストールする。
- Riderを再起動して、正常にローカライズできたかどうかを確認する。
プラットフォームターゲットの変更
実行環境(x86やx64)を問わずに、適切なモードで実行できるAnyCPUという仕組みが存在する。
しかし、AnyCPUは、ソフトウェアを実行する時まで、x86またはx64のいずれかで動作するかどうかは不明なため、
AnyCPUをサポートしていない言語(例えば、C/C++言語やC++CLI言語で作成したDLL)を使用する場合、DllImportとの相性が悪い。
DllImportは、コンパイル時に動的ライブラリの読み込みパスを指定するため、実行時に動的ライブラリの呼び分けができない。
(x86の場合はxxx86.so、x64の場合はyyy64.soファイルを読み込む等)
プロジェクトファイルにおいて、プラットフォームターゲットを変更する手順を、以下に示す。
- ソリューションを開く。
- メイン画面の左ペインから、プロジェクト名を右クリック - [Properties...]を選択する。
- [プロジェクトプロパティ]画面が開くので、画面左ペインにある[Debug - AnyCPU] - 画面右ペインにある[Platform target:]プルダウンから[x64]を選択する。
- 同様に、画面左ペインにある[Release - AnyCPU] - 画面右ペインにある[Platform target:]プルダウンから[x64]を選択する。
外部コンソールの使用
Riderでは、出力コンソールを外部コンソールアプリケーションに変更することができる。
これにより、プログラムの実行時において、別ウインドウでコンソールが起動する。
なお、この設定はプロジェクトごとに個別に設定することが可能である。
- まず、プロジェクトの実行構成を開く。
- [実行]メニューバー - [実行構成の編集]を選択する。
- または、ツールバーの[実行構成]プルダウンの横にある編集ボタンを選択する。
- 該当する実行構成を選択して、以下に示す設定を変更する。
- [Run]タブを開く。
- [Run in external console]チェックボックスにチェックを入力する。
- [Apply]ボタンを押下して設定を保存する。
この設定は、以下に示すような場合に有効である。
- Console.ReadKeyメソッド等の入力待ちを使用する場合
- プログラムの実行結果をより見やすく表示する場合
- IDE内蔵のコンソールで文字化け等の問題が発生する場合
Avalonia UI
Avalonia UI
Avalonia UIは、以前はDirect2Dをレンダリングエンジンとして使用していたが、現在はSkiaを主要なレンダリングエンジンとして採用している。
ただし、SkiaSharpを直接使用しているわけではない。
Avalonia UIのインストール
まず、インストール - .NET SDKを参照して、.NET SDKをインストールする。
Avaloniaテンプレートをインストールするため、以下のコマンドを実行する。
- インストールされている.NET SDKが1つの場合
- nugetからインストールする場合
dotnet new install Avalonia.Templates
- Githubからダウンロードしてインストールする場合
git clone --depth 1 https://github.com/AvaloniaUI/avalonia-dotnet-templates dotnet new install avalonia-dotnet-templates
- nugetからインストールする場合
- インストールされている.NET SDKが複数存在する場合
- 現在、インストールされている.NET SDKのバージョンを確認する。
dotnet --list-sdks
- 任意のディレクトリに移動して、global.jsonファイルを作成するため、以下のコマンドを実行する。
cd <任意のディレクトリ> dotnet new globaljson --sdk-version <.NETのバージョン 例. 5.0.403>
- Avaloniaテンプレートをインストールする。
- nugetからインストールする場合
dotnet new install Avalonia.Templates
- Githubからダウンロードしてインストールする場合
git clone --depth 1 https://github.com/AvaloniaUI/avalonia-dotnet-templates dotnet new install avalonia-dotnet-templates
- nugetからインストールする場合
次に、Avaloniaプラグインのインストールするため、Riderを起動して、[Configure]プルダウンから[Plugins]を選択する。
[Preferenes]画面が開くので、[Settings]アイコン - [Manage Plugin Repositories...]を選択する。
[+]アイコンを選択して、以下のURLを入力後、[OK]ボタンを押下する。
https://plugins.jetbrains.com/plugins/dev/14839
[Marketplace]タブを選択して、"Avalonia"を検索する。
"AvaloniaRider"を選択して、[Install]ボタンを押下する。
インストール完了後に表示される[Restart IDE]ボタンを押下する。
上記の設定により、RiderにおいてAvaloniaソフトウェアを開発する準備が整う。
Avaloniaプロジェクトを作成するには、以下に示す2つの方法がある。
- RiderからAvaloniaの新規プロジェクトを作成する方法
- Riderのメイン画面から、[File]メニュー - [New...]から、
[New Solution]画面左にある[Avalonia .NET Core App]または[Avalonia .NET Core MVVM App]を選択して、各項目を設定した後、[Create]ボタンを押下する。
- Riderのメイン画面から、[File]メニュー - [New...]から、
dotnetコマンドを使用してAvaloniaの新規プロジェクトを作成する方法- まず、Avaloniaテンプレートプロジェクトを作成する。
- Avaloniaのバージョンを指定しない場合
dotnet new avalonia.app -o <Avaloniaプロジェクト名>
- Avaloniaのバージョンを指定する場合
dotnet new avalonia.app -o <Avaloniaプロジェクト名> -A <Avaloniaのバージョン> # または dotnet new avalonia.app -o <Avaloniaプロジェクト名> --AvaloniaVersion <Avaloniaのバージョン>
# 例1. dotnet new avalonia.app -o <Avaloniaプロジェクト名> -A 11.0.0-preview4 # 例2. dotnet new avalonia.app -o <Avaloniaプロジェクト名> -A 0.10.18
- Avaloniaのバージョンを指定しない場合
- 次に、Riderを起動して、上記で作成した新規プロジェクトを開く。
- まず、Avaloniaテンプレートプロジェクトを作成する。
Avalonia UIのアンインストール
Avaloniaをアンインストールする場合、dotnetコマンドを実行することにより、アンインストールコマンドが確認できる。
- Avaloniaのアンインストールコマンドを確認する
dotnet new uninstall # または dotnet new -u (非推奨)
- Avaloniaをアンインストールする
dotnet new uninstall <Avaloniaのパッケージ名> # または dotnet new -u <Avaloniaのパッケージ名> (非推奨)
Avalonia UIの詳細を知りたい場合は、Avaloniaの公式Webサイトのドキュメントを参照すること。
Uno Platform
Uno Platformのインストール
まず、インストール - .NET SDKを参照して、.NET SDKをインストールする。
Uno Plaformを動作させるため、以下の依存関係のライブラリをインストールする。
sudo zypper install gtk3-devel
Uno Platformテンプレートをインストールするため、以下のコマンドを実行する。
- インストールされている.NET SDKが1つの場合
dotnet new install Uno.Templates
- インストールされている.NET SDKが複数存在する場合
- 現在、インストールされている.NET SDKのバージョンを確認する。
dotnet --list-sdks
- 任意のディレクトリに移動して、global.jsonファイルを作成するため、以下のコマンドを実行する。
cd <任意のディレクトリ> dotnet new globaljson --sdk-version <.NETのバージョン 例. 5.0.403>
- Uno Platformテンプレートをインストールする。
dotnet new install Uno.Templates
現時点では、RiderにはUno Platform向けのテンプレートが存在しないため、Uno Platormプロジェクトを作成する場合は、以下のコマンドを実行する。
dotnet new unoapp -o <プロジェクト名>
Uno Platformを使用した設計方法は、以下に示す公式Webサイトを参照すること。
※注意
Uno Platformテンプレートのインストールは、.NET SDKのバージョンごとに行われる。
つまり、テンプレートは、dotnet --version コマンドで示されるバージョンに合わせてインストールされる。
インストールに使用したバージョンと異なるバージョンのテンプレートを使用する時、"No templates found matching: 〜."というエラーが発生することに注意する。
Uno Platformのアンインストール
Uno Platformをアンインストールする場合、dotnetコマンドを実行することにより、アンインストールコマンドが確認できる。
- Uno Platformのアンインストールコマンドを確認する。
dotnet new uninstall # または dotnet new -u (非推奨)
- Uno Platformをアンインストールする。
dotnet new unintall <Uno Platformのパッケージ名> # または dotnet new -u <Uno Platformのパッケージ名> (非推奨)
ACPを使用したOpenCodeとの連携
ACP (Agent Client Protocol) を使用すると、RiderのAI ChatからOpenCodeをコーディングエージェントとして利用できる。
ACPは、コードエディタとAIコーディングエージェント間の通信を標準化するプロトコルである。
RiderはACP互換エージェントをサブプロセスとして起動して、OpenCodeとは標準入出力を介して通信する。
前提条件
- OpenCodeが利用可能であること。
- OpenCodeでプロバイダ認証が完了していること。
- RiderでAI AssistantおよびAI Chatを利用できること。
- WSL環境ではないこと。
OpenCode側の認証とプロジェクト設定
OpenCodeの認証は、Riderの設定ファイルにAPIキーを記述せず、OpenCode側で行う。
プロバイダを認証するには、ターミナルで以下に示すコマンドを実行する。
opencode auth login
認証済みのプロバイダを確認する場合は、以下に示すコマンドを実行する。
opencode auth list
認証情報は ~/.local/share/opencode/auth.json ファイルに保存される。
プロジェクト固有のモデル、MCPサーバ、権限等は、.NETソリューションまたはプロジェクトのルートに opencode.json / opencode.jsonc ファイルを配置して設定する。
OpenCodeは起動時にカレントディレクトリから設定ファイルを探し、Gitディレクトリの範囲まで上位へ探索する。
作業ルールや設計方針は、同じプロジェクトルートの AGENTS.md ファイルに記述する。
JetBrains側のACP設定
~/.jetbrains/acp.jsonの作成
JetBrains IDEのACP設定は、ユーザ単位の ~/.jetbrains/acp.json ファイルで管理する。
AI Chatツールウィンドウ右上のメニューから[Add Custom Agent]を選択すると、設定ファイルを作成して編集できる。
手動で作成する場合は、次のコマンドを実行する。
mkdir -p ~/.jetbrains
OpenCode実行ファイルの絶対パスの確認
command キーには、OpenCode実行ファイルの絶対パスを指定する。
次のコマンドで実行ファイルの場所を確認する。
command -v opencode readlink -f "$(command -v opencode)"
出力されたパスを command キーの値に使用する。
acp.jsonの記述
~/.jetbrains/acp.json ファイルに、次の内容を記述する。
{
"default_mcp_settings": {
"use_idea_mcp": true,
"use_custom_mcp": true
},
"agent_servers": {
"OpenCode": {
"command": "/home/<ユーザ名>/.opencode/bin/opencode",
"args": [
"acp"
]
}
}
}
command キーのパスは、実際に確認した絶対パスへ置き換える。
args 配列には acp を指定し、OpenCodeをACPサーバとして起動する。
| 項目 | 配置 | 説明 |
|---|---|---|
default_mcp_settings |
最上位 | 全ローカルエージェントに適用する既定のMCP設定 |
use_custom_mcp |
default_mcp_settings 配下 |
ユーザが設定したMCPサーバをエージェントへ公開する。 既定値は true |
use_idea_mcp |
default_mcp_settings 配下 |
IntelliJ MCP Serverをエージェントへ公開する。 既定値は false |
agent_servers |
最上位 | ACPエージェントの一覧 キーはAI Chatに表示される名前になる |
command |
各エージェント配下 | エージェントの実行ファイル JetBrainsがサブプロセスとして起動するため、絶対パスを指定する。 |
args |
各エージェント配下 | 起動時に渡す引数の配列 OpenCodeでは acp を指定する。
|
env (省略可能) |
各エージェント配下 | エージェントプロセスに設定する環境変数 プロキシ等が必要な場合に使用する。 |
Riderでの有効化と動作確認
設定の反映
acp.json ファイルの保存後、RiderのAI Chatでエージェントを選択できる。
表示されない場合は、JSON形式と実行ファイルのパスを確認して、Riderを再起動する。
エージェントの選択
RiderでAI Chatツールウィンドウを開いて、チャットモードのエージェントセレクタから[OpenCode]を選択する。
.NETソリューションまたはプロジェクトの動作確認
.NETソリューションまたはプロジェクトを開いた状態で、読み取り中心の指示を送信する。
この.NETソリューションの構成と主要プロジェクトを調査し、ビルド方法とテスト方法を要約してください。 ファイルは変更しないでください。
エージェントが応答し、ソリューション内のファイルを参照できれば、ACP連携を確認できる。
OpenCode単体での事前確認
Rider側を確認する前に、ターミナルで opencode acp コマンドを実行して、起動できるか確認する。
/home/<ユーザ名>/.opencode/bin/opencode acp
command キーに設定した絶対パスへ置き換えて実行する。
このコマンドはACPサーバを起動し、標準入力と標準出力でACPメッセージを待機する。
プロジェクト単位の設定
ACPエージェントの登録はユーザ単位の ~/.jetbrains/acp.json ファイルで行う。
一方、OpenCodeの動作はプロジェクト単位で設定できる。
次のファイルを.NETソリューションまたはプロジェクトのルートに配置する。
- opencode.json または opencode.jsonc
- モデル、MCPサーバ、権限等のプロジェクト設定を記述する。
- AGENTS.md
- 作業ルール、設計方針、禁止事項等を記述する。
トラブルシューティング
OpenCodeエージェントがAI Chatに表示されない
- 原因
- acp.json ファイルのJSON形式が正しくない、または、設定変更がRiderに反映されていない。
- 解決方法
- acp.json ファイルが正しいJSON形式であることを確認する。
- Riderを再起動する。
エージェントの起動に失敗する
- 原因
commandキーの絶対パスが誤っている、OpenCodeの認証が完了していない、実行ファイルを起動できない。
- 解決方法
command -v opencodeコマンド およびreadlink -fコマンドで絶対パスを確認する。- 設定した絶対パスで
opencode acpコマンドを手動実行する。 opencode auth listコマンドを実行して、プロバイダ認証を確認する。
ACPログの取得
AI Chatツールウィンドウ右上のメニューから[Get ACP Logs]を選択すると、エージェントログのアーカイブを取得できる。
詳細な要求と応答を記録するには、Registryの llm.agent.extended.logging キーを有効にしてRiderを再起動する。
ログにはチャット内容等の機密情報が含まれる可能性があるため、共有前に確認する。
セキュリティと運用上の注意
- APIキーを ~/.jetbrains/acp.json ファイルに平文で記述しないこと。
- OpenCodeの認証機能で設定した認証情報を使用する。
commandキーには絶対パスを指定すること。- シェルのエイリアスや相対パスは、JetBrainsから起動できない場合がある。
use_idea_mcpキー とuse_custom_mcpキーの公開範囲を確認すること。- 有効にしたMCPサーバの機能がエージェントから利用可能になる。
- 詳細ログを共有する前に機密情報を除去すること。
- チャット内容やファイル内容が含まれる可能性がある。
- WSL環境ではACP互換エージェントを使用しないこと。
- JetBrains公式ドキュメントでサポート対象外とされている。
関連情報
- JetBrains公式 ACPドキュメント
- OpenCode公式 ACP Support
- OpenCode公式 CLI
- OpenCode公式 Config
- Agent Client Protocol仕様
- インストール - OpenCode