Skip to main content

syncfusion-winforms-licensing

Comprehensive guide for implementing and managing Syncfusion Windows Forms licensing. Use this when troubleshooting license validation errors, generating or registering license keys, or configuring CI/CD license validation. This skill covers license key management, trial vs licensed versions, NuGet package licensing, and build server scenarios.

معلومات المصدر

المستودع
syncfusion/winforms-ui-components-skills
آخر نشاط في المصدر
٦ يوليو ٢٠٢٦ في ٠٧:١٩
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٢
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
6 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
syncfusion-winforms-licensing
description
Comprehensive guide for implementing and managing Syncfusion Windows Forms licensing. Use this when troubleshooting license validation errors, generating or registering license keys, or configuring CI/CD license validation. This skill covers license key management, trial vs licensed versions, NuGet package licensing, and build server scenarios.
metadata
{"author":"Syncfusion Inc","version":"34.1.29"}
# Implementing Syncfusion Windows Forms Licensing This skill provides comprehensive guidance for implementing and managing Syncfusion licensing in Windows Forms applications, including license key generation, registration, troubleshooting, and CI/CD integration. ## When to Use This Skill Use this skill immediately when you need to: - **Implement licensing** in a Windows Forms application using Syncfusion components - **Resolve license validation errors** or trial expiration messages - **Generate license keys** for specific versions and platforms - **Register license keys** in C# or VB.NET Windows Forms applications - **Troubleshoot licensing issues** such as invalid keys, platform mismatches, or version mismatches - **Configure CI/CD pipelines** with license validation (Azure Pipelines, GitHub Actions, Jenkins) - **Understand licensing requirements** for NuGet packages, trial installers, or licensed installers - **Upgrade from trial to licensed version** after purchasing - **Handle build server licensing** scenarios ## Overview of Syncfusion Licensing Starting with version 16.2.0.x, Syncfusion introduced a new licensing system that requires license key registration for: - Applications using evaluation installers - Applications referencing Syncfusion NuGet packages from nuget.org **Key Points:** - License keys are **version and platform specific** - License keys are different from installer unlock keys - Validation happens **offline** during application execution (no internet required) - Licensed installer users do not need to register license keys - Trial license keys expire after 30 days ## Documentation and Navigation Guide ### Understanding Licensing 📄 **Read:** [references/licensing-overview.md](references/licensing-overview.md) When to read this reference: - Understanding the licensing system introduced in version 16.2.0.x - Learning the difference between unlock keys and license keys - Determining when license registration is required - Understanding build server scenarios (NuGet vs Trial vs Licensed installers) - Learning about version and platform specificity ### Generating License Keys 📄 **Read:** [references/license-generation.md](references/license-generation.md) When to read this reference: - Generating license keys from License & Downloads section - Generating license keys from Trial & Downloads section - Using the Claim License Key feature - Handling active license scenarios - Handling active trial scenarios - Dealing with expired licenses - Starting a trial when no license exists ### Registering License Keys 📄 **Read:** [references/license-registration.md](references/license-registration.md) When to read this reference: - Implementing the RegisterLicense method in C# or VB.NET - Registering keys in Main() method for C# applications - Registering keys in Application.Designer.vb for VB.NET - Registering keys in Program.vb for VB.NET - Understanding Syncfusion.Licensing.dll reference requirements - Learning about offline validation capabilities ### Troubleshooting Licensing Errors 📄 **Read:** [references/licensing-errors.md](references/licensing-errors.md) When to read this reference: - Resolving "License key not registered" errors - Fixing "Invalid key" errors - Handling "Trial expired" messages - Resolving platform mismatch errors - Fixing version mismatch errors - Troubleshooting "Could not load Syncfusion.Licensing.dll" errors - Configuring Copy Local settings - Understanding legacy errors (v16.2.0 - v20.3.0) ### Common Questions and CI/CD Integration 📄 **Read:** [references/licensing-faqs.md](references/licensing-faqs.md) When to read this reference: - Implementing CI/CD license validation (Azure Pipelines, GitHub Actions, Jenkins) - Using LicenseKeyValidator utility in build pipelines - Understanding where to get license keys - Checking if internet connection is required for validation - Upgrading from trial to licensed version - Registering Syncfusion account for NuGet.org users - Understanding license key specificity ## Quick Start Example Here's a complete example of registering a Syncfusion license key in a Windows Forms application: ### C# Example (Using Environment Variable - Recommended) ```csharp using System; using System.Windows.Forms; using Syncfusion.Licensing; namespace MyWindowsFormsApp { static class Program { [STAThread] static void Main() { // SECURITY BEST PRACTICE: Read license key from environment variable string licenseKey = Environment.GetEnvironmentVariable("SYNCFUSION_LICENSE_KEY"); if (string.IsNullOrEmpty(licenseKey)) { MessageBox.Show("Syncfusion license key not found in environment variables.", "Configuration Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Register Syncfusion license key BEFORE any Syncfusion control is initiated SyncfusionLicenseProvider.RegisterLicense(licenseKey); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } ``` ### Alternative: Using Configuration File (App.config) ```csharp using System; using System.Configuration; using System.Windows.Forms; using Syncfusion.Licensing; namespace MyWindowsFormsApp { static class Program { [STAThread] static void Main() { // Read from app.config (ensure it's not committed to source control) string licenseKey = ConfigurationManager.AppSettings["SyncfusionLicenseKey"]; if (string.IsNullOrEmpty(licenseKey)) { MessageBox.Show("Syncfusion license key not configured.", "Configuration Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } SyncfusionLicenseProvider.RegisterLicense(licenseKey); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } ``` **App.config example:** ```xml <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <!-- DO NOT commit actual license key to source control --> <!-- Use environment-specific config files or CI/CD secrets --> <add key="SyncfusionLicenseKey" value="" /> </appSettings> </configuration> ``` ### VB.NET Example (Using Environment Variable - Recommended) ```vb Imports Syncfusion.Licensing Namespace My Partial Friend Class MyApplication Public Sub New() MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) ' SECURITY BEST PRACTICE: Read license key from environment variable Dim licenseKey As String = Environment.GetEnvironmentVariable("SYNCFUSION_LICENSE_KEY") If String.IsNullOrEmpty(licenseKey) Then MessageBox.Show("Syncfusion license key not found in environment variables.", _ "Configuration Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Return End If ' Register Syncfusion License SyncfusionLicenseProvider.RegisterLicense(licenseKey) Me.IsSingleInstance = False Me.EnableVisualStyles = True Me.SaveMySettingsOnExit = True Me.ShutdownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses End Sub End Class End Namespace ``` ### Setting Environment Variable **Windows (PowerShell):** ```powershell # For current session $env:SYNCFUSION_LICENSE_KEY = "your-license-key-value" # Permanent (User level) [System.Environment]::SetEnvironmentVariable("SYNCFUSION_LICENSE_KEY", "your-license-key-value", "User") # Permanent (System level - requires admin) [System.Environment]::SetEnvironmentVariable("SYNCFUSION_LICENSE_KEY", "your-license-key-value", "Machine") ``` **Windows (Command Prompt):** ```cmd setx SYNCFUSION_LICENSE_KEY "your-license-key-value" ``` ## Common Patterns ### Pattern 1: License Key Registration Workflow When implementing Syncfusion licensing: 1. **Generate** license key from Syncfusion account 2. **Add reference** to Syncfusion.Licensing.dll 3. **Register** license key at application entry point (before any Syncfusion control initialization) 4. **Verify** no license validation errors appear ### Pattern 2: Troubleshooting License Errors When encountering license validation errors: 1. **Identify** the specific error message 2. **Verify** license key is for correct version and platform 3. **Check** registration location (must be before control initialization) 4. **Ensure** Syncfusion.Licensing.dll is referenced and Copy Local = True 5. **Regenerate** license key if needed ### Pattern 3: CI/CD License Validation When implementing license validation in CI pipelines: 1. **Store** license key securely in CI/CD secrets (never in source control) 2. **Choose validation method:** - **Recommended:** Use `ValidateLicense()` method in unit tests - **Alternative:** Use LicenseKeyValidator utility (with security verification) 3. **Configure** validation to read license key from environment variables 4. **Integrate** validation in CI pipeline (Azure, GitHub Actions, Jenkins) 5. **Validate** license before deployment 6. **Handle** validation failures appropriately **Security Requirements:** - ✅ Use CI/CD secret management (Azure Key Vault, GitHub Secrets, Jenkins Credentials) - ✅ Read keys from environment variables only - ❌ Never hardcode keys in scripts - ❌ Never commit keys to source control ### Pattern 4: Upgrading from Trial to Licensed When purchasing a license after trial: 1. **Option A:** Uninstall trial, install licensed version from License & Downloads 2. **Option B:** (For NuGet users) Replace trial license key with paid license key 3. **Verify** license registration in application 4. **Test** to ensure no trial messages appear ## Key Concepts ### Security Best Practices for License Keys 1. **Never Hardcode License Keys** - ❌ Don't embed keys directly in source code - ❌ Don't commit keys to version control (Git, SVN, etc.) - ❌ Don't include keys in build scripts checked into source control 2. **Use Secure Storage Methods** - ✅ Environment variables (recommended for local development) - ✅ Configuration files excluded from source control (.gitignore) - ✅ CI/CD secret management (GitHub Secrets, Azure Key Vault, Jenkins Credentials) - ✅ Secure configuration management systems (Azure App Configuration, AWS Secrets Manager) 3. **Access Control** - Limit who can access license keys - Rotate keys periodically if exposed - Audit key usage in production environments 4. **CI/CD Security** - Use pipeline secret variables - Never echo/log license keys in build output - Inject keys at runtime through environment variables **Example - What NOT to Do:** ```csharp // ❌ WRONG: Hardcoded key in source code SyncfusionLicenseProvider.RegisterLicense("Mgo+DSMBaFt/QHRq..."); ``` **Example - Correct Approach:** ```csharp // ✅ CORRECT: Key from environment variable string key = Environment.GetEnvironmentVariable("SYNCFUSION_LICENSE_KEY"); SyncfusionLicenseProvider.RegisterLicense(key); ``` ### License Key Characteristics - **Version-specific:** License key must match Syncfusion assembly version - **Platform-specific:** Windows Forms keys only work for Windows Forms platform - **Offline validation:** No internet connection required during runtime - **String format:** License key is a string registered via RegisterLicense() - **Sensitive data:** Treat as confidential credential (like passwords or API keys) ### Registration Requirements | Assembly Source | License Registration Required? | Where to Get Key | |----------------|-------------------------------|------------------| | NuGet packages from nuget.org | ✅ Yes | License & Downloads / Trial & Downloads | | Trial installer | ✅ Yes | Trial & Downloads | | Licensed installer | ❌ No | Not applicable | ### Critical Registration Rules 1. **Timing:** Register license key BEFORE initializing any Syncfusion control 2. **Location:** - C#: In `Main()` method before `Application.Run()` - VB.NET: In `Application.Designer.vb` constructor or `Program.vb` 3. **Dependencies:** Ensure `Syncfusion.Licensing.dll` is referenced with Copy Local = True 4. **Format:** Place license key string between double quotes ## Common Use Cases ### Use Case 1: First-Time Syncfusion License Setup **Scenario:** Developer setting up Syncfusion in a new Windows Forms project using NuGet packages. **Approach:** 1. Read [references/licensing-overview.md](references/licensing-overview.md) to understand requirements 2. Read [references/license-generation.md](references/license-generation.md) to generate key 3. Read [references/license-registration.md](references/license-registration.md) to implement registration 4. Test application to verify no license errors ### Use Case 2: Resolving License Validation Error **Scenario:** Application shows "License key not registered" or "Invalid key" error. **Approach:** 1. Read [references/licensing-errors.md](references/licensing-errors.md) to identify specific error 2. Verify license key version and platform match 3. Check registration code location and timing 4. Regenerate license key if needed 5. Verify Syncfusion.Licensing.dll reference ### Use Case 3: Build Server Configuration **Scenario:** Setting up Syncfusion licensing for automated builds or CI/CD. **Approach:** 1. Read [references/licensing-overview.md](references/licensing-overview.md) build server section 2. Determine if license registration is required based on assembly source 3. Read [references/licensing-faqs.md](references/licensing-faqs.md) CI/CD section for pipeline setup 4. Implement license validation in CI pipeline 5. Test build process ### Use Case 4: Trial to Licensed Upgrade **Scenario:** Developer purchased license after using trial version. **Approach:** 1. Read [references/licensing-faqs.md](references/licensing-faqs.md) upgrade section 2. Choose upgrade approach (reinstall or key replacement) 3. Generate new paid license key 4. Update registration code with new key 5. Verify trial message is removed ### Use Case 5: Version Upgrade **Scenario:** Upgrading Syncfusion components to a new version. **Approach:** 1. Generate new license key for target version from License & Downloads 2. Update NuGet packages or installer to new version 3. Replace old license key with new version-specific key 4. Test application to ensure compatibility 5. If errors occur, read [references/licensing-errors.md](references/licensing-errors.md) ## Additional Resources - **Syncfusion Account:** https://www.syncfusion.com/account/manage-trials/downloads - **License & Downloads:** https://www.syncfusion.com/account/downloads - **Support:** https://support.syncfusion.com/ ## Summary This skill covers the complete lifecycle of Syncfusion Windows Forms licensing: - Understanding licensing requirements and scenarios - Generating license keys for specific versions and platforms - Registering license keys in C# and VB.NET applications - Troubleshooting common licensing errors - Implementing CI/CD license validation - Handling trial and licensed version transitions Always start by reading the appropriate reference file based on your specific need (overview, generation, registration, errors, or FAQs).
عرض على GitHub