打包发布
本章节介绍如何构建、打包和发布 Fastdotnet 插件到插件市场。
📖 本章内容
- 后端构建
- 前端构建
- 打包插件
- 版本管理
- 上传插件市场
- 手动部署
- 更新插件
🏗️ 构建流程
1. 构建后端
bash
cd MyPlugin/Backend
dotnet publish -c Release -o ../publish/{PluginId}/dependencies说明:
-c Release: 使用 Release 配置(优化性能)-o: 指定输出目录
2. 构建前端
管理端
bash
cd ../Frontend/MyPlugin.Admin
pnpm build构建产物会自动输出到 ../../publish/{PluginId}/wwwroot/admin/
应用端
bash
cd ../MyPlugin.App
pnpm build构建产物会自动输出到 ../../publish/{PluginId}/wwwroot/app/
3. 验证构建结果
检查 publish/{PluginId}/ 目录结构:
{PluginId}/
├── dependencies/ # 后端 DLL
│ ├── MyPlugin.dll
│ └── ...其他依赖
├── wwwroot/
│ ├── admin/ # 管理端静态资源
│ │ ├── assets/
│ │ └── index.html
│ └── app/ # 应用端静态资源
│ ├── assets/
│ └── index.html
└── plugin.json # 插件元数据📦 打包插件
Windows (PowerShell)
bash
cd publish/{PluginId}
Compress-Archive -Path * -DestinationPath ../../MyPlugin-v1.0.0.zipLinux / macOS
bash
cd publish/{PluginId}
zip -r ../../MyPlugin-v1.0.0.zip .命名规范: {PluginName}-v{Version}.zip
例如:MyPlugin-v1.0.0.zip
🔢 版本管理
语义化版本
遵循 Semantic Versioning 规范:
MAJOR.MINOR.PATCH- MAJOR: 不兼容的 API 变更
- MINOR: 向后兼容的功能新增
- PATCH: 向后兼容的问题修正
更新版本号
修改以下文件中的版本号:
plugin.json
json{ "Version": "1.0.1" }MyPlugin.csproj
xml<Version>1.0.1</Version>package.json (前端)
json{ "version": "1.0.1" }
Git 标签
bash
git add .
git commit -m "Release v1.0.1"
git tag v1.0.1
git push origin v1.0.1🚀 发布到插件市场
1. 登录插件市场
访问 https://fastdotnet.top/marketplace
2. 上传插件
- 进入"开发者中心"
- 点击"发布新插件"
- 填写插件信息:
- 插件名称
- 插件描述
- 版本号
- 更新日志
- 截图预览
- 上传 ZIP 文件
- 提交审核
3. 审核流程
- 自动检测: 文件格式、元数据验证
- 人工审核: 功能测试、安全性检查
- 审核时间: 通常 1-3 个工作日
4. 发布成功
审核通过后,插件会在插件市场上架,用户可以搜索和安装。
🖥️ 手动部署
如果不通过插件市场,可以手动部署到服务器。
步骤
复制插件文件
bash# 将 ZIP 文件复制到服务器 scp MyPlugin-v1.0.0.zip user@server:/path/to/plugins/解压到 Plugins 目录
bashcd /path/to/Fastdotnet/Plugins unzip MyPlugin-v1.0.0.zip重启应用(如果需要)
bashsystemctl restart fastdotnet
注意: Fastdotnet 支持热加载,大多数情况下无需重启。
🔄 更新插件
1. 修改代码
进行功能开发或 Bug 修复。
2. 更新版本号
按照语义化版本规范更新版本号。
3. 重新构建
bash
# 后端
dotnet publish -c Release
# 前端
pnpm build4. 重新打包
bash
zip -r MyPlugin-v1.1.0.zip publish/{PluginId}/*5. 发布新版本
- 插件市场: 上传新版本,用户会收到更新通知
- 手动部署: 替换旧版本文件
📋 发布检查清单
在发布之前,确保完成以下检查:
代码质量
- [ ] 代码已格式化
- [ ] 无编译警告和错误
- [ ] 单元测试通过
- [ ] 代码审查完成
功能测试
- [ ] 所有功能正常工作
- [ ] API 接口测试通过
- [ ] 前端页面正常显示
- [ ] 边界情况已处理
文档
- [ ] README 已更新
- [ ] 更新日志已编写
- [ ] API 文档完整
- [ ] 使用说明清晰
元数据
- [ ] plugin.json 信息准确
- [ ] 版本号正确
- [ ] 依赖项完整
- [ ] 许可证声明
安全
- [ ] 无敏感信息泄露
- [ ] SQL 注入防护
- [ ] XSS 防护
- [ ] 权限控制正确
❓ 常见问题
Q: 构建后找不到文件?
A: 检查 vite.config.ts 中的 outDir 配置是否正确。
Q: 插件市场审核失败?
A: 查看审核意见,修复问题后重新提交。常见原因:
- 功能不完整
- 存在安全漏洞
- 文档不清晰
- 与描述不符
Q: 如何回滚版本?
A:
- 在插件市场下架当前版本
- 上传旧版本
- 或手动替换服务器上的文件
Q: 插件更新后用户需要做什么?
A:
- 插件市场安装: 用户可以在插件管理中点击"更新"
- 手动部署: 需要管理员手动替换文件并重启(如果需要)
🎯 最佳实践
1. 自动化构建
使用 CI/CD 工具(如 GitHub Actions、Azure DevOps)自动化构建和发布流程。
2. 版本控制
- 每个版本打 Git 标签
- 维护 CHANGELOG.md
- 保持向后兼容
3. 文档同步
- 每次更新同步文档
- 提供迁移指南
- 标注破坏性变更
4. 用户反馈
- 收集用户反馈
- 及时修复 Bug
- 定期发布更新