メインコンテンツまでスキップ
バージョン: 2.0.0-preview

拡張機能用のC#プロジェクトを作成

Beutl拡張機能用に空のC#プロジェクトを作成する方法を説明します。

この記事では、Visual Studio CodeVisual Studio を使う方法を紹介します。 Beutl 2.0 では Beutl.Extensibility.Sdk という MSBuild SDK が用意されており、ターゲットフレームワーク・言語デフォルト・標準パッケージ参照(Beutl.ExtensibilityBeutl.ProjectSystemBeutl.NodeGraphBeutl.EditorBeutl.Engine.SourceGenerators)・サイドロード時の出力先を自動で設定してくれます。これを使うと csproj を最小構成で記述できます。

ヒント

ターゲットにする Beutl のリリースに合わせて SDK のバージョンを選択してください。SDK と Beutl ランタイムパッケージは同じバージョン体系で配布されます(例: 2.0.0-preview.2)。別の組み合わせを使いたい場合は BeutlPackagesVersion プロパティで参照パッケージのバージョンを上書きできます。

Visual Studio Code

  1. ターミナルを使用して、クラスライブラリを作成します。
dotnet new classlib -o MyBeutlExtension

ディレクトリ構造が以下のようになることをご確認ください。

MyBeutlExtension
┣━ obj
┃ ┗━ (...)
┣━ Class1.cs
┗━ MyBeutlExtension.csproj
  1. 以下のコマンドを実行して、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
  1. 生成された 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 が以下を自動で行います。

  • TargetFrameworknet10.0 に、ImplicitUsingsNullableenable に設定。
  • Beutl.ExtensibilityBeutl.ProjectSystemBeutl.NodeGraphBeutl.Editor への PackageReferenceBeutl.Engine.SourceGenerators アナライザーを追加。
  • DebugApplicationtrue のとき、出力先を ~/.beutl/sideloads/<AssemblyName> にリダイレクト。

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

自動参照のカスタマイズ

特定の自動参照を無効化したい場合は、以下のプロパティを false に設定します。

  • BeutlAutoReferenceAll
  • BeutlAutoReferenceExtensibility
  • BeutlAutoReferenceProjectSystem
  • BeutlAutoReferenceNodeGraph
  • BeutlAutoReferenceEditor
  • BeutlAutoReferenceSourceGenerators

Visual Studio

  1. Visual Studio を開いて、ファイル > 新規作成 > プロジェクト をクリックします。 Visual Studioプロジェクトを作成

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

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

  4. フレームワークは .NET 10.0 を選択します(Beutl.Extensibility.Sdk 側で上書きされますが、ターゲットの Beutl リリースに合わせておくと最初から IntelliSense が正しく機能します)。

  5. 作成をクリックします。

ディレクトリ構造が以下のようになることをご確認ください。

MyBeutlExtension
┣━ MyBeutlExtension
┃ ┣━ obj
┃ ┃ ┗━ (...)
┃ ┣━ Class1.cs
┃ ┗━ MyBeutlExtension.csproj
┗━ MyBeutlExtension.sln
  1. 以下のコマンドを実行して、nuget.config を生成し、パッケージソースを追加します。
dotnet new nugetconfig
dotnet nuget add source "https://nuget.beditor.net/v3/index.json" --name nuget.beditor.net
  1. 生成された 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>
  1. NuGetパッケージの復元 をクリックして、正常にNuGet依存関係を復元できることをご確認ください。 NuGetパッケージを復元

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