import{_ as e,c as n,a as i,e as l,b as t,d,w as r,r as h,o as p}from"./app-DlzW8FTI.js";const o="/assets/image-Bpsx7f75.png",k="/assets/image-2-CHhsrExz.png",c={};function g(m,s){const a=h("RouteLink");return p(),n("div",null,[s[3]||(s[3]=i("h1",{id:"开始编写插件",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#开始编写插件"},[i("span",null,"开始编写插件")])],-1)),s[4]||(s[4]=i("p",null,"本文章将介绍如何创建、调试并运行 ClassIsland 的插件项目。",-1)),s[5]||(s[5]=i("h2",{id:"设置开发环境",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#设置开发环境"},[i("span",null,"设置开发环境")])],-1)),i("p",null,[s[1]||(s[1]=t("在开始之前,您需要按照")),d(a,{to:"/dev/get-started/development-plugins.html"},{default:r(()=>s[0]||(s[0]=[t("设置 ClassIsland 插件开发环境")])),_:1}),s[2]||(s[2]=t("的指引设置插件开发环境。"))]),s[6]||(s[6]=l('
您可以使用项目模板快速开始开发。
如果您没有安装过模板包,先运行以下命令安装模板包
dotnet new install ClassIsland.PluginTemplate.Packaging在 JetBrains Rider 或其它支持的编辑器中中选择此模板创建项目
或者在 .NET CLI 中通过以下命令行创建项目
# MyPlugin 是您的插件项目名称
mkdir MyPlugin
cd MyPlugin
dotnet new cipx-template -n MyPlugin打开并运行项目。
🎉恭喜!您成功创建了您的第一个插件!
在使用模板创建插件后,您会看到项目内已经有了一些文件,以下是这些文件的大致用途:
MyPlugin
|- MyPlugin.csproj // 项目文件
|- Plugin.cs // 插件入口点
|- manifest.yml // 插件清单文件
|- README.md // 插件自述文件
|- icon.png // 插件图标
|- Properties // 项目属性(如启动配置等)文件夹
|- launchSettings.json // .NET 项目启动配置这些文件的具体用途将在之后介绍。
插件清单文件manifest.yml包含了插件的基本信息,如插件入口程序集等。使用插件模板创建的项目的清单文件已经基本配置完毕,您只需按照需要进行微调。
清单文件具有以下属性:
| 属性名 | 类型 | 必填? | 说明 |
|---|---|---|---|
| id | string | 是 | 插件的唯一 id |
| entranceAssembly | string | 是 | 插件入口程序集。在加载插件时将从这个程序集中查找插件入口点。 |
| apiVersion | Version | 是 | 此插件面向的 ClassIsland 版本。此插件将只能在高于此版本的 ClassIsland 上工作。 |
| name | string | 否 | 插件显示名称 |
| description | string | 否 | 插件描述 |
| url | string | 否 | 插件主页 Url |
| author | string | 否 | 插件作者 |
| version | Version | 否 | 插件版本,如1.0.0.0 |
| icon | string | 否 | 插件图标文件名,默认值为icon.png |
| readme | string | 否 | 插件自述文件文件名,默认为README.md |
以下是一个清单文件的示例:
id: examples.helloworld # 插件 id
name: Hello world! # 插件名称
apiVersion: 2.0.0.0 # 插件面向的 ClassIsland 版本
description: 在启动时弹出一个“Hello world”提示框。 # 插件描述
entranceAssembly: "HelloWorldPlugin.dll" # 插件入口程序集
url: https://github.com/ClassIsland/ExamplePlugins # 插件 Url
author: HelloWRC # 插件作者
version: 1.0.0.0 # 插件版本您可以继续阅读本文档来进一步了解相关 API 的用法,或者查看 GitHub 上的 插件示例。您也可以看看插件功能请求板块来寻找灵感。
`,16))])}const y=e(c,[["render",g]]),b=JSON.parse('{"path":"/dev/plugins/create-project.html","title":"开始编写插件","lang":"zh-CN","frontmatter":{"description":"开始编写插件 本文章将介绍如何创建、调试并运行 ClassIsland 的插件项目。 设置开发环境 在开始之前,您需要按照的指引设置插件开发环境。 创建项目 您可以使用项目模板快速开始开发。 如果您没有安装过模板包,先运行以下命令安装模板包 在 JetBrains Rider 或其它支持的编辑器中中选择此模板创建项目 在 JetBrains Rider...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"开始编写插件\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-12-14T02:59:03.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"ClassIsland 社区\\",\\"url\\":\\"https://classisland.tech\\"}]}"],["meta",{"property":"og:url","content":"https://docs.classisland.tech/dev/plugins/create-project.html"}],["meta",{"property":"og:site_name","content":"ClassIsland 文档"}],["meta",{"property":"og:title","content":"开始编写插件"}],["meta",{"property":"og:description","content":"开始编写插件 本文章将介绍如何创建、调试并运行 ClassIsland 的插件项目。 设置开发环境 在开始之前,您需要按照的指引设置插件开发环境。 创建项目 您可以使用项目模板快速开始开发。 如果您没有安装过模板包,先运行以下命令安装模板包 在 JetBrains Rider 或其它支持的编辑器中中选择此模板创建项目 在 JetBrains Rider..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2025-12-14T02:59:03.000Z"}],["meta",{"property":"article:modified_time","content":"2025-12-14T02:59:03.000Z"}],["link",{"rel":"alternate","hreflang":"en-us","href":"https://docs.classisland.tech/en-us/dev/plugins/create-project.html"}]]},"git":{"createdTime":1721874765000,"updatedTime":1765681143000,"contributors":[{"name":"WRC","username":"WRC","email":"hello_wrc@outlook.com","commits":14,"url":"https://github.com/WRC"},{"name":"Xwei1645","username":"Xwei1645","email":"68677053+Xwei1645@users.noreply.github.com","commits":1,"url":"https://github.com/Xwei1645"}]},"readingTime":{"minutes":2.43,"words":730},"filePathRelative":"dev/plugins/create-project.md","autoDesc":true}');export{y as comp,b as data};