NetSparkle 开源项目使用教程

1. 项目介绍

NetSparkle 是一个用于 .NET 开发者的跨平台、高度可配置的软件更新框架。它提供了预构建的用户界面(UI),支持 .NET 4.6.2 及以上版本,以及 .NET 6+。NetSparkle 支持 WinForms、WPF 和 Avalonia,并使用 Ed25519 签名来确保更新的安全性。

主要特点:

  • 跨平台支持:适用于 Windows、macOS 和 Linux。
  • 多种 UI 支持:内置 WinForms、WPF 和 Avalonia UI。
  • 高度可配置:允许自定义 UI 和更新流程。
  • 安全签名:使用 Ed25519 签名确保更新文件的完整性。

2. 项目快速启动

安装 NetSparkle

首先,通过 NuGet 安装 NetSparkle:

dotnet add package NetSparkleUpdater.SparkleUpdater

基本使用

以下是一个简单的示例,展示如何在 WinForms 应用程序中使用 NetSparkle 进行自动更新。

using NetSparkleUpdater;
using NetSparkleUpdater.Enums;
using NetSparkleUpdater.Interfaces;
using NetSparkleUpdater.SignatureVerifiers;
using System;
using System.Windows.Forms;

namespace MyApp
{
    public partial class MainForm : Form
    {
        private SparkleUpdater _sparkle;

        public MainForm()
        {
            InitializeComponent();
            InitializeSparkle();
        }

        private void InitializeSparkle()
        {
            // 设置 AppCast URL
            string appCastUrl = "https://yourdomain.com/appcast.xml";

            // 创建 SparkleUpdater 实例
            _sparkle = new SparkleUpdater(appCastUrl, new Ed25519Checker(SecurityMode.Strict, "YOUR_PUBLIC_KEY"))
            {
                UIFactory = new NetSparkleUpdater.UI.WinForms.UIFactory(null, null, null, null, null)
            };

            // 启动更新检查
            _sparkle.StartLoop(true, true);
        }

        protected override void OnClosed(EventArgs e)
        {
            base.OnClosed(e);
            _sparkle?.Dispose();
        }
    }
}

配置项目文件

在项目文件中,确保设置以下属性以便 NetSparkle 能够正确读取版本信息:

<PropertyGroup>
  <Version>1.0.2-beta1</Version>
  <AssemblyVersion>1.0.2</AssemblyVersion>
  <AssemblyTitle>My Best App</AssemblyTitle>
  <Description>My app is cool</Description>
  <Company>My Company Name</Company>
  <Product>My Product</Product>
</PropertyGroup>

3. 应用案例和最佳实践

应用案例

  • 跨平台桌面应用:NetSparkle 适用于需要跨平台更新的桌面应用程序,如企业内部工具、教育软件等。
  • 开源项目:开源项目可以通过 NetSparkle 轻松实现自动更新,确保用户始终使用最新版本。

最佳实践

  • 安全签名:始终使用 Ed25519 签名来确保更新文件的完整性。
  • 自定义 UI:根据应用需求,自定义更新界面以提供更好的用户体验。
  • 定期更新:定期检查并发布更新,确保用户始终使用最新功能和修复。

4. 典型生态项目

相关项目

  • NetSparkleUpdater.Tools.AppCastGenerator:用于生成 AppCast 文件的工具,支持 Ed25519 签名。
  • NetSparkleUpdater.Tools.DSAHelper:用于生成和验证 DSA 签名的工具。

集成示例

以下是如何使用 NetSparkleUpdater.Tools.AppCastGenerator 生成 AppCast 文件的示例:

dotnet tool install --global NetSparkleUpdater.Tools.AppCastGenerator
netsparkle-generate-appcast --app-cast-file appcast.xml --signature-file appcast.xml.signature --public-key YOUR_PUBLIC_KEY --private-key YOUR_PRIVATE_KEY

通过这些步骤,您可以轻松地将 NetSparkle 集成到您的 .NET 应用程序中,并实现自动更新功能。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐