拡張機能用のC#プロジェクトを作成
Beutl拡張機能用に空のC#プロジェクトを作成する方法を説明します。
この記事では、Visual Studio Code、Visual Studio を使う方法を紹介します。
Beutl 2.0 では Beutl.Extensibility.Sdk という MSBuild SDK が用意されており、ターゲットフレームワーク・言語デフォルト・標準パッケージ参照(Beutl.Extensibility、Beutl.ProjectSystem、Beutl.NodeGraph、Beutl.Editor、Beutl.Engine.SourceGenerators)・サイドロード時の出力先を自動で設定してくれます。これを使うと csproj を最小構成で記述できます。
ターゲットにする Beutl のリリースに合わせて SDK のバージョンを選択してください。SDK と Beutl ランタイムパッケージは同じバージョン体系で配布されます(例: 2.0.0-preview.2)。別の組み合わせを使いたい場合は BeutlPackagesVersion プロパティで参照パッケージのバージョンを上書きできます。
Visual Studio Code
- ターミナルを使用して、クラスライブラリを作成します。
dotnet new classlib -o MyBeutlExtension
ディレクトリ構造が以下のようになることをご確認ください。
MyBeutlExtension
┣━ obj
┃ ┗━ (...)
┣━ Class1.cs
┗━ MyBeutlExtension.csproj
- 以下のコマンドを実行して、
nuget.configを生成し、パッケージソースを追加します。Beutl の SDK とランタイムパッケージはnuget.beditor.netフィードから配布されています。
dotnet new nugetconfig
dotnet nuget add source "https://nuget.beditor.net/v3/index.json" --name nuget.beditor.net
- 生成された
MyBeutlExtension.csprojを以下のように編集します。
<Project Sdk="Beutl.Extensibility.Sdk/2.0.0-preview.2">
<PropertyGroup>
<PackageId>MyBeutlExtension</PackageId>
<Title>拡張機能のサンプル</Title>
<Description>サンプル</Description>
<PackageTags>sample</PackageTags>
<Version>1.0.0</Version>
<Authors>作者名</Authors>
<RepositoryUrl>url/to/repository</RepositoryUrl>
<!-- Debug ビルド時に出力先を ~/.beutl/sideloads/<AssemblyName> にし、
Beutl からサイドロード拡張機能として読み込めるようにします。 -->
<DebugApplication Condition="'$(Configuration)'=='Debug'">true</DebugApplication>
</PropertyGroup>
</Project>
SDK が以下を自動で行います。
TargetFrameworkをnet10.0に、ImplicitUsingsとNullableをenableに設定。Beutl.Extensibility、Beutl.ProjectSystem、Beutl.NodeGraph、Beutl.EditorへのPackageReferenceとBeutl.Engine.SourceGeneratorsアナライザーを追加。DebugApplicationがtrueのとき、出力先を~/.beutl/sideloads/<AssemblyName>にリダイレクト。
以上で拡張機能用に空のC#プロジェクトを作成することができました。
自動参照のカスタマイズ
特定の自動参照を無効化したい場合は、以下のプロパティを false に設定します。
BeutlAutoReferenceAllBeutlAutoReferenceExtensibilityBeutlAutoReferenceProjectSystemBeutlAutoReferenceNodeGraphBeutlAutoReferenceEditorBeutlAutoReferenceSourceGenerators
Visual Studio
-
Visual Studio を開いて、ファイル > 新規作成 > プロジェクト をクリックします。

-
クラスライブラリを選択して、次へをクリックします。

-
プロジェクト名、場所を入力して次へをクリックします。

-
フレームワークは
.NET 10.0を選択します(Beutl.Extensibility.Sdk側で上書きされますが、ターゲットの Beutl リリースに合わせておくと最初から IntelliSense が正しく機能します)。 -
作成をクリックします。
ディレクトリ構造が以下のようになることをご確認ください。
MyBeutlExtension
┣━ MyBeutlExtension
┃ ┣━ obj
┃ ┃ ┗━ (...)
┃ ┣━ Class1.cs
┃ ┗━ MyBeutlExtension.csproj
┗━ MyBeutlExtension.sln
- 以下のコマンドを実行して、
nuget.configを生成し、パッケージソースを追加します。
dotnet new nugetconfig
dotnet nuget add source "https://nuget.beditor.net/v3/index.json" --name nuget.beditor.net
- 生成された
MyBeutlExtension.csprojを以下のように編集します。
<Project Sdk="Beutl.Extensibility.Sdk/2.0.0-preview.2">
<PropertyGroup>
<PackageId>MyBeutlExtension</PackageId>
<Title>拡張機能のサンプル</Title>
<Description>サンプル</Description>
<PackageTags>sample</PackageTags>
<Version>1.0.0</Version>
<Authors>作者名</Authors>
<RepositoryUrl>url/to/repository</RepositoryUrl>
<DebugApplication Condition="'$(Configuration)'=='Debug'">true</DebugApplication>
</PropertyGroup>
</Project>
- NuGetパッケージの復元 をクリックして、正常にNuGet依存関係を復元できることをご確認ください。

以上で拡張機能用に空のC#プロジェクトを作成することができました。