### March 6, 2026, v7.42.0
- Added `ILicenseManager.GetUserLicensesSSO` method that returns all user licenses using SSO.
- Fixed an issue where consumption overage value of 0 didn't mean unlimited overages.

### February 19, 2026, v7.41.1
- Fixed an issue that prevented the sdk from running on .NET MAUI platform

### February 13, 2026, v7.41.0
- Implemented floating features borrowing

### February 2, 2026, v7.40.0
- Added support for iOS hardware ID generation (use `DeviceIDAlgorithm.HardwareIdGeneratorDefault`).
- Implemented license bundles (see the new BundleSample project in samples folder in the zip).
- Added Unity beta project to main zip (Unity sdk is no longer a separate download link).
- Fixed floating features registration information being reset on license check.
- Removed obsolete serializers in legacy and new .NET frameworks respectively, and replaced them with unified Newtonsoft.Json v13.0.4.

### January 14, 2026, v7.39.0
- Added SSO-based license borrowing for floating licenses (`ILicense.BorrowSSO` methods).
- Added `LicenseManager.GetAllSSOUrls` method for fetching all SSO urls from the LicenseSpring platform.
- Fixed license deactivation issue.

### December 21, 2025, v7.38.0
- Added an optional parameter to `License.DeactivateOffline` for sending device variables during license deactivation.

### November 8, 2025, v7.37.1
- Fixed an issue with validity duration in air-gap license activation.

### November 3, 2025, v7.37.0
- Added `ILicense.ActivationDate()` and `ILicense.ActivationDateUTC()` methods.
- Fixed an issue with serialization of base64 encoded data (i.e. in offline license activation).

### October 20, 2025, v7.36.2
- Improved offline licensing cryptography security.
- Reverted forcing TLS12.

### October 13, 2025, v7.36.1
- Fixed an issue with HWID generation on some target frameworks.
- Fixed an issue with nuget not being built for some target frameworks (.NET Standard and .NET 5+).

### October 12, 2025, v7.36.0
- Added support for Floating Server v2.
- Added `AirGapCryptographyMode` enum for selecting cryptography implementation when generating AirGap codes.
- Added `ExtendedOptions.AirGapCryptographyMode` property, defaults to `AirGapCryptographyMode.Auto`.

### September 17, 2025, v7.35.0
- Added hardware key (Yubikey) support.
- Added Company references to `License` and `ProductDetails`.

### August 28, 2025, v7.34.0
- Integrated new hardware ID algorithms through the `hardware_id_generator.dll` and `libhardware_id_generator.so` libraries, depending on the OS.

### September 5 2025, v7.33.6
- Fixed an issue with legacy airgap license policy files.

### September 4, 2025, v7.33.5
- Fixed an issue with AirGap code verification running on Windows 11.

### July 31, 2025, v7.33.4
- Fixed an issue with AirGap licensing running on Windows 11.

### June 16, 2025 v7.33.3
- Fixed missing `user` parameter when releasing offline floating feature.
- Fixed generating air-gap code issue on .NET framework.

### June 12, 2025 v7.33.2
- Fixed missing `user` parameter when registering offline floating feature.

### May 29, 2025 v7.33.1
- Fixed an issue with HWID generation using windows alternative algorithm on some windows 11 LTSE versions.

### April 28, 2025 v7.33.0
- Added overload methods with password parameter to floating license borrowing methods `ILicense.Borrow`.

### April 10, 2025 v7.32.1
- Fixed OAuth samples namespace issue.

### April 10, 2025 v7.32.0
- Added OAuth client credentials authentication support through a new `Configuration.cs` constructor.
- Added `ConfigurationFactory.CreateOAuthConfiguration` method.
- Updated `Config.cs` class in samples with the new constructor.

### March 5, 2025 v7.31.2
- Fixed Airgap licensing issue on linux.

### February 23, 2025 v7.31.1
- Added env filter to `ProductDetails ILicenseManager.GetProductDetails(bool includeCustomFields, bool includeLatestVersion, string env)`.
- Fixed nuget package signing issue (not related to SDK functionality).

### November 11, 2024 v7.30.0
- Added parameter AirgapSkipLocalTimeCheck to ExtendedOptions for ignoring local time desync check.

### October 17, 2024 v7.29.0
- Fixed `UserLicense.Customer` property not being populated.
- Fixed null reference exception in floating client methods.
- Fixed web application not starting.
- Implemented negative consumption feature by adding `bool ILicense.IsNegativeConsumptionAllowed()` and `bool ILicenseFeature.AllowNegativeConsumptions`
 
### July 26, 2024 v7.28.0
- Added overload method `ILicense ILicenseManager.ActivateLicense(LicenseID, DeviceVariable[])` which enables setting device variables on license activation.
- Added `UserLicensesData[] ILicenseManager.GetUserLicenses(string, string)` that retrieves all licenses for the provided username and password and the product this LicenseManager is initialized for.
- Added `long? ServerId` property to `ILicenseID`, used for activating user licenses if a single user has multiple licenses for the same product.
- Discontinued support for .net frameworks 3.5 and 4.0.

### June 13, 2024, v7.27.1
- Added `Code` property to `LicenseActivationException` to differentiate between license_transferred_max_times and license_activated_max_times api error codes.
- Added `string OrderStoreId()` method to ILicense.

### May 28, 2024, v7.26.1
- Fixed missing metadata values.
- Cleaned up public documentation.

### April 04, 2024, v7.26.0
- Added `BundleCode` property to `ExtendedOptions` for cases when a single user has a bundle and a single license for the same product.
- Added `IncludeExpiredFeatures` property to `LicenseWatchdogSettings` to enable watchdog to work with expired features.
- Added .net8.0 support.

### January 22, 2024, v7.25.0
- Implemented support for custom web headers by adding property `CustomHeaders` to `ExtendedOptions.cs`.

### January 02, 2024, v7.24.1
- Fixed an issue with metadata being deserialized to null.

### December 19, 2023, v7.24.0
- Added optional parameter `includeExpiredFeatures` to `License.Check()` for retrieving expired license features.
- Added optional parameters `includeCustomFields` and `includeLatestVersion` to `ILicenseManager.GetProductDetails()` method.
- Added `AutoRelease` property to `ILicense` (if set to true calls `Release()` in `License` destructor).
- Fixed object reference exception when `WebRequest.DefaultWebProxy` is set to null.
- Fixed several documentation typos.

### November 16, 2023, v7.23.0
- Implemented floating features functionality.
- Implemented floating features watchdog.

### September 29, 2023, v7.22.1
- Fixed guid duplicate error for `LicenseWatchdogSettings` class.
- Fixed assembly registration issue.

### September 21, 2023, v7.22.0
- Implemented grace period feature (#32941836).
- Added `IsGracePeriodStarted`, `GracePeriodEndDateTime`, `GracePeriodEndDateTimeUTC` methods to `License` class (#32941836).
- Added `GracePeriod` option to `ExtendedOptions` class (#32941836).
- Renamed methods related to subscription grace period to `IsSubscriptionGracePeriodStarted`, `SubscriptionGracePeriod` (#32941836).
- Fixed bug of incorrect `MaxActivations` value when unlimited license activation is enabled (#33122578).
- Fixed false positive VMware detection (#32941889).
- Improved detection of Hyper-V (#32941889).
- Improved logging of VM detection (#32941889).
- Added `RequestDateInvalidException`.
- Added method `TransferLimit` to `License` class, it shows limit of license transfers between devices.
- Added helper methods `IsDeviceTransferAllowed` and `IsDeviceTransferLimited` to `License` class.
- Updated console samples to print license device transfer limit.

### July 14, 2023, v7.21.0
- Improved air-gap activation security (#32557560).
- Added `License.IsAirGapped` (#32557560).
- Added `License.PolicyId` (#32557560).
- Implemented air-gap license deactivation, added `License.DeactivateAirGap` and `License.GetAirGapDeactivationCode` methods (#32534266).
- Updated AirGapSample to handle air-gap deactivation (#32534266).

### June 26, 2023, v7.20.0
- Improved Microsoft Hyper-V VM detection, fixed issues with false-positive detection (#31420186).
- Improved exception handling for internal server errors (#32392513).
- Moved verification of air gap confirmation code to `LicenseManager.ActivateAirGapLicense`, added `AirGapActivationException` (#32384327).
- Added searching through policy files in case path to a directory is passed to `LicenseManager.ActivateAirGapLicense` (#32384327).
- Fixed trial license detection issue for air-gap activation (#32384327).
- Fixed signature check for offline floating licenses (#32305742).
- Fixed last usage date time in trial mode (#32376223).
- Fixed getting device id for Linux under WSL (#32353914).

### June 09, 2023, v7.19.0
- Security patch, that address vulnerability of bypassing license signature verification (#32280863).
- Added detection of Azure VM.
- Updated WinFormSample.
- Updated documentation.

### June 02, 2023, v7.18.0
- Added metadata field for `ProductDetails`, `Customer`, `License` and `LicenseFeature` classes.
- Fixed ArgumentOutOfRangeException on `License.ValidityWithGracePeriod` and `License.IsValid` for subscription licenses with grace period.

### May 24, 2023, v7.17.1
- Fixed issue of freezing calling thread when stopping watchdog or releasing borrowed license.
- Updated documentation.

### May 22, 2023, v7.17.0
- Updated LicenseWatchdog, added `LicenseWatchdogSettings` class. Added options: running the callback on every license check, handling `NetworkException` and `LicenseServerException`.
- Added handling borrowed license: if the license is borrowed, watchdog will be paused until borrowing end date time.
- Added `License.SetupLicenseWatchdog` method that takes `LicenseWatchdogSettings` as an argument. Updated WinForm sample to demonstrate usage of `LicenseWatchdogSettings`.
- Added `License.SetWatchdogTimeout` method.
- Fixed license borrowing using offline update files.

### May 09, 2023, v7.16.0
- Added `License.CanBorrow` helper method.
- Added `License.Register` method, see SDK documentation.
- Implemented unlimited consumption for consumption license and consumption features.
- Added `License.IsUnlimitedConsumptionAllowed` method and `LicenseFeature.AllowUnlimitedConsumptions` property.
- Updated SDK demo samples. Improved handling of floating licenses.
- Updated documentation.
- Improved security check for offline license activation and refresh, implemented offline signature verification.
- Improved error handling for offline license activation and refresh, the SDK will throw more specific exceptions in case of errors. 
- Added exception for not supported target builds for air-gap activation.

### April 06, 2023, v7.15.0
- Added `ExtendedOptions.AlternateKey`, `ExtendedOptions.AlternateServiceURL` properties, that can be used for self-hosted LicenseSpring.
- Improved security for `License.UpdateOffline` method.
- Fixed security issue when activating license offline on a different device.

### March 29, 2023, v7.14.0
- Fixed issue of JSON serialization.
- Fixed several issues related to offline activation when license contains features and custom fields.

### March 22, 2023, v7.13.3
- Improved VBA sample.
- Added SDK version to log file.
- Fixed issue getting WinAlternative device id for .Net Framework target builds.

### February 17, 2023, v7.13.2
- Added `CustomerNotFoundException`
- Fixed license features synchronization issues.

### February 6, 2023, v7.13.1
- Added `License.MaxBorrowTime`.
- Added `License.Borrow` overloaded method that accepts `DateTime` argument.
- Implemented `License.IsGracePeriodStarted`.
- Fixed issue of incorrect return value for `FloatingEndDateTime` method when license is borrowed.
- Updated ConsoleSample.

### February 1, 2023, v7.13.0
- Added `InvalidApiKeyException`, `ReadOnlyApiKeyException`, `RevokedApiKeyException`, and `ApiKeyProductNotAllowedException`.
- Implemented grace period feature for Subscription licenses. See `License.GracePeriod` and `License.ValidityWithGracePeriod`.
- Added `FloatingTimeoutExpiredException`.
- Fixed several issues with local license check and license expiry check.
- Fixed issue with `CryptoProvider` creation for Configuration when changing credentials.
- Adjusted obfuscation level to prevent false positive detection the SDK as malware.

### January 11, 2023, v7.12.0
- Added .NET 7 target build.
- Fixed issue of false positive malware detection in the SDK.
- Updated obfuscation.

### December 19, 2022, v7.11.0
- Implemented new API set for managing device variables. See `DeviceVariable`, `License.GetDeviceVariables`, `License.AddDeviceVariable` etc.
Now device variables a being stored along with local license, managing device variables available both locally and on the backend. See SDK documentation for more details.
- Implemented license borrowing feature. See `License.Borrow`.
- Implemented `DeviceIDAlgorithm.WinAlternative` algorithm, fixed device id issue for UWP and self-contained apps.
- Added `License.FloatingEndDateTime`, now floating license expires when floating period ends.
- Added `BorrowLicenseException`.
- Added `DateHeaderInvalidException`.
- Fixed `LicenseManager.RelinkLicense` method.
- Fixed param encoding issue for get queries.
- Improved obfuscation.

### October 27, 2022, v7.10.1
- Fixed license signature verification error.
- Enlarged default network timeout, now default is 10 seconds.

### October 6, 2022, v7.10.0
- Improved security, implemented license signature v2 verification.
- Implemented SSO activation using auth code instead of token.
- Added SSOSample project.
- Removed `License.Signature`.

### September 22, 2022, v7.9.1
- Fixed issue of long delay on desktop platforms when getting device id and when `DeviceIdAlgorithm.AutoId` is set. 
- Added `ExtendedOptions.CloudIdRequestTimeout` option. It allows control request timeout when querying cloud platforms for instance id.
- Improved obfuscation.

### September 8, 2022, v7.9.0
- Added `Source: sdk` header.
- Added `License.StopLicenseWatchdog` method.
- Implemented sending optional param `sdk_lang`.
- Fixed several issues and improved SDK <-> FloatingServer integration.
- Implemented getting instance id for GCP. Added `DeviceIDAlgorithm.CloudPlatformsId` and `DeviceIDAlgorithm.AutoId`. Removed `ExtendedOptions.WebServiceMode`.
- Fixed date conversion issue related to air gap activation.

### July 7, 2022, v7.8.0
- Implemented methods `LicenseManager.GetSSOUrl` and `LicenseManager.ActivateLicense` for activation of user based licenses using Single Sign On.
- Implemented methods `LicenseManager.GetAirGapActivationCode`, `LicenseManager.VerifyConfirmationCode` and `LicenseManager.ActivateAirGapLicense` for activation of air gap licenses.
Air gap licensing is available only in .NET Framework 4.7 or greater, .NET Standard, .NET 5.0 and .NET 6.0 libraries.
- Added AirGapSample project.
- Added `DeviceIDAlgorithm.Gen3` device ID calculation algorithm to generate shorter HardwareID. This option can be useful for air gap licenses.

### May 31, 2022, v7.7.0
- Added .Net6 support and ConsoleSampleNet6.
- Added `DeviceIDAlgorithm` enumeration and `ExtendedOptions.DeviceIdAlgorithm` property.
- Implemented method for updating license to new device id algorithm, see documentation for `LicenseManager.RelinkLicense`.
- Setter for `LicenseID.Password` made public.
- Added `License.StartDate` method and `CannotBeActivatedNowException`, see SDK docs for more details.
- Added address info data to the `Customer` class (address, city, state, country, postcode).
- Implemented ability to set desired license policy when requesting trial license. See `LicenseManager.GetTrialLicense`.
- Added new properties for consumption features: `LicenseFeature.AllowOverages`, `LicenseFeature.MaxOverages`, `LicenseFeature.ResetConsumption` and `LicenseFeature.ConsumptionPeriod`.
- Updated SDK samples.

### November 11, 2021, v7.6.1
- Fixed compatibility issue with licenses created by previous SDK versions.

### November 9, 2021, v7.6.0
- Added `LicenseUser.IsInitialPassword` property.
- Added data check when sending device variables.
- Improved support of handling multiple licenses, added `BaseManager.ReloadLicense` method.
- Fixed ArgumentException error when removing SDK data in case data location is current directory.
- Fixed incorrect license path if it was set as an empty string through the ExtendedOptions.
- Fixed UUID duplicate error.
- Fixed minor issues in VM Detection module.
- Updated VBA sample.

### November 1, 2021, v7.5.0
- Implemented VM detection, see `ExtendedOptions.EnableVMDetection` and `Configuration.IsVM`, `Configuration.DetectedVMName`.
- Added `VMIsNotAllowedException`.
- Added `License.LicenseUser` method. Added `LicenseUser.Id` property.
- Improved getting device id on Windows, improved error handling and logging.
- Fixed URL for offline activation page in WinForm sample.
- Fixed getting device ID in Xamarin sample.

### August 31, 2021, v7.4.1
- Added new license data fields, see `License.TransferCount` and `License.FloatingSlotsInUse`.
- Updated samples and configuration.

### August 13, 2021, v7.4.0
- Implemented new classes for interaction with on-premise floating server. See `FloatingClient`, `FloatingServerInfo`.
- Implemented feature of adding local consumption info (both for license and features) when deactivating license offline.
- Implemented IEquatable interface and operator == for `LicenseID`.
- Fixed issue losing local consumption data when updating license offline.

### July 19, 2021, v7.3.0
- Added cloud platforms support:
Implemented getting Azure VM instance ID, adapted the SDK for working in Azure.
Implemented getting AWS VM instance ID.
- Added ASP.Net sample application.
- Added `ICryptoProvider` iterface and `CryptoProvider` class. Now it is possible to set crypto key or salt, or implement custom CryptoProvider.
- Implemented new license storage model. See `ILicenseStorage` interface and `LicenseMemoryStorage`, `LicenseFileStorage` classes.
Now it possible to store local license in custom locations like your DB, Windows registry, etc, by implementing `ILicenseStorage` interface.
- Implemented interprocess synchronization for local license, see `LicenseFileStorageEx` class.
- Added new properties `LicenseManager.DataLocation`, `LicenseManager.LicenseFileName`.
`LicenseManager.Initialize` now accepts `ILicenseStorage` as optional argument.
- Added new properties to `InstallationFile` class, see `EulaLink`, `ReleaseNotesLink`, `Channel`, `Size` and `Environment`.
- Implemented filtering of installation files by environment and channel, added new class `InstallationFileOptions`.
- Improved `License.UpdateOffline`, added support for files created by the LicenseSpring platform.
- Improved error handling, general refactoring and improvements.

### July 1, 2021, v7.2.0
- Implemented getting information on license users, see `LicenseUser` and `LicenseManager.GetCustomerLicenseUsers`.
- `LicenseManager.GetTrialLicense` now returns `LicenseID`, that includes initial password for user-based licenses.
- Added new members to `InstallationFile` class, that allow implementation of intermediate updates.
See `InstallationFile.ReleaseDate` and `InstallationFile.RequiredVersion`.
- Public keys was encrypted and moved to the code.
- Improved obfuscation.

### April 30, 2021, v7.1.0
- Added new method `License.UpdateOffline`.
- Added diff file to make SDK update easier.
- Allowed overwriting OS version info in `Configuration`.
- Fixed unknown exception in case of expired license, now SDK throws suitable exception type `LicenseExpiredException`.
- Fixed issues running on mobile platforms.
- Improved error handling, added new exception types `LicenseDisabledException` and `LicenseInactiveException`.
- Improved samples, updated VBA sample.

### April 22, 2021, v7.0.0
- Added new class `LicenseID`, generalized API calls for user-based and key-based products.
- Implemented `LicenseStatus` and added `LicenseDeletedException`, SDK throws it in case license was deleted by product admin.
- Allowed overwriting of network information (IP, MAC and hostname).
- Implemented caching of ProductDetails.
- Fixed connection issue when using SDK with Xamarin on iOS.
- Fixed unhandled exception issue when SDK runs in Unity for Android or iOS.
- Removed API and data types for creating licenses and orders, this API is transferred to separate Management SDK.
- General improvements and refactorings, simplified class names for `LicenseSpringConfiguration` and `LicenseSpringExtendedOptions`.

### March 15, 2021, v6.5.0
- Implemented expiry date for `LicenseFeature`, see `LicenseFeature.ExpiryDate` and `LicenseFeature.IsExpired`.
- Allowed decreasing consumption, see new methods `License.UpdateConsumption` and `License.UpdateFeatureConsumption`.
- Added optional parameter `OverageRequest` to `License.SyncConsumption`.
- Fixed connection check when SDK runs in Mono runtime.
- Fixed offline activation issue.
- Implemented support for Xamarin.Forms, added SDK sample for Xamarin.Forms Android and iOS.
- Improved samples.

### January 28, 2021, v6.4.0
- Added .Net5.0 target build.
- Added new cross-platform sample.
- Removed reflection protection that was causing Unity editor and SmartAssembly to crash.
- Fixed port number in check connection method.

### November 18, 2020, v6.3.1
- Added `LicenseSpringExtendedOptions.ProtectOfflineActivation` option.
- Fixed problem with offline activation.
- Fixed typo in config file for VB.Net sample.

### November 9, 2020, v6.3.0
- Implemented SDK obfuscation.
- The assemblies have been signed with digital signature.
- Fixed check for connection when default proxy is being used.
- Fixed a few error messages.
- Minor fixes in WinForm sample.

### October 25, 2020, v6.2.0
- Implemented change password feature for user-based products. See `LicenseManager.ChangePassword` and `License.ChangePassword`.
- Added new exception types `TrialLicenseExpiredException`, `PasswordChangeNotAllowedException` and `MissingParametersException`.
- Added helper method `License.MaintenanceDaysRemaining`.
- Fixed `License.DaysRemaining` counter.
- Fixed connection check in conjunction with proxy.
- Improved WinForm sample.

### October 7, 2020, v6.1.0
- Security improvements for offline activation.
- Added new target Net Standard 2.1, it uses different API for device ID calculation compared to Net Standard 2.0 target.
Please note device ID remains the same, just API changed.
- Added a few data members to `LicenseDetails`. See `LicenseDetails.MaintenanceEndDate`, `LicenseDetails.IsFloating` and others.
- Refactoring and performance improvements.
- Minow UI fixes in WinForm sample.

### July 27, 2020, v6.0.0
- Added new classes `BaseManager` and `ManagementService`. Functionality divided into management and end-user license handling.
- Updated `LicenseDetails` and `OrderDetails` classes, added new data members.
- Implemented LicenseWatchdog (background thread) for auto license checks, see `License.SetupLicenseWatchdog`.
- Threadsafety and reliability improvements.
- Added new exception types `MaxFloatingReachedException` and `DeviceBlacklistedException`.
- Created package for NuGet, so LicenseSpring is now avalible on NuGet, see https://www.nuget.org/packages/LicenseSpring.NetSDK/
- Fixed hardware ID issue due to localization of some WMI fields. See `LicenseSpringExtendedOptions.UseNewHardwareID`.
- Minor fixes and improvements in Configuration.

### June 19, 2020, v5.5.0
- Implemented increasing feature consumption in offline mode.
- Implemented Overages feature for Consumption license type. See `License.IsConsumptionOverageAllowed` and `License.MaxConsumptionOverage`.
- Implemented Floating licensing. See `License.IsFloating`, `License.FloatingTimeout`, `License.FloatingUsers` and `License.Release`
- Improved consumption handling. Added new methods `License.UpdateFeatureConsumption`, `LicenseFeature.LocalConsumption`.
- Added helper method `License.Feature`, it returns feature by code.
- Improved error handling and added new exception class `InvalidLicenseFeatureException`.
- Fixed `License.TimesActivated` count issue for offline activation.

### June 1, 2020, v5.4.5
- Fixed assembly registration issue (Guid duplicate error).
- Fixed encoding issue (invalid BOM marker in requests) on macOS Mono runtime.
- Improved error handling.
- Added new exceptions `MissingEmailException` and `InvalidOrderIDException`.

### April 9, 2020, v5.4.4
- .Net Standard build adapted for Linux and MacOS, now it's cross-platform, supported platforms are Windows, Linux and MacOS.
- Fixed and improved `ProxySettings` class and proxy related logic, for more details please see documentation.
- Updated documentation and other minor improvements.

### March 30, 2020, v5.4.3
- Added `LicenseFeature.Name`, now it's possible to get License feature name not only code.
- Added XML documentation, so now SDK documentation can be accessed and viewed from the IDE.
- Fixed deactivation bug, `TimesActivated` value wasn't updated properly. Improved `License.Deactivate`, see documentation.
- Improved `License.IncreaseFeatureConsumption`, removed redundant check and increased performance.
- Added sample app for .Net Core target.
- For .Net standard build System.Management package updated to the latest stable version 4.7.0.

### March 19, 2020, v5.4.2
- Fixed hardware ID issue for Unity Engine.
- Added helper method `License.IsMaintenancePeriodExpired`.
- Improved hardware ID algorithm. Does not throw exception if could not determine system disk ID.
- Improved error handling in case of network errors (like secure channel failure and others).

### February 28, 2020, v5.4.1
- Added new helper method `LicenseManager.IsOnline`, for more details see documentation.
- `ProductDetails` information now also available for offline activated licenses, see `License.GetProductDetails`.
- Default license file path changed to %localappdata%\LicenseSpring\%ProductCode%\License.key
If you use default license path in your app license will be transferred to new location by the SDK automatically.
- Fixed issue of empty offline activation file and corrupted license file.
- Improved error handling, `LicenseFileException` accompanied by internal exception, added `NetworkException` wrapper, see documentation.

### February 20, 2020, v5.4.0
- Added new `LicenseManager.GetTrialLicense` method.
It accepts Customer object, when issuing trial license also new customer will be created or license will be assigned to existing customer.
- Added `License.LastCheckDateUTC` and fixed `License.DaysRemaining` method. See documentation for more details.
- Improved logging.
- Improved error handling, fixed exceptions messages.
- Added `APINotFoundException`, `ActivationFileException`, `UnknownLicenseSpringException` exceptions.
- Fixed issue of consumption features. Consumption changes were not stored to local license file properly.
- Fixed assembly registration warnings. Generic collections types was replaced with plain arrays for COM interop.
- Added interfaces for public classes, it's required for better COM interop.
- `License.SendCustomData` renamed to `License.SendDeviceData`.

### January 28, 2020, v5.3.1
- Fixed issue with company data member in Customer object.
- `OrderDetails.OrderID` property now public.
- Fixed ClassInterfaceAttribute for some of the public classes and assigned guids.

### January 22, 2020, v5.3.0
- Added license owner information `License.Owner`, for more details see documentation.
- Added `License.IsValid` helper method, see documentation for more details.
- Fixed binary files (assembly dependencies and incorrect target framework versions).

### January 13, 2020, v5.2.0
- Fixed Hardware ID issue in case of foreign (not english) locale.
- Added "WebService" mode for situations in which there is no possibility to save license file locally.
Can be enabled by `LicenseSpringExtendedOptions.WebServiceMode` property.

### December 20, 2019, v5.1.0
- Added new API request `LicenseManager.GetProductDetails`, new class `ProductDetails`.
- Added `LicenseSpringConfiguration.LicenseSpringAPIVersion` property. It returns API version that SDK uses.
- API version field added to offline activation/deactivation files.
- `LicenseManager.GetTrialKey` replaced with `LicenseManager.GetTrialLicense`.
- Improved`LicenseManager.CreateOrder`, new class `LicenseDetails`.
- Improved console sample, now demonstrates both user-based and key-based licensing approaches.
- Added VB.Net sample.
- Added build for .Net 4.8 target.

### December 11, 2019, v5.0.0
- Added documentation for the SDK. See documentation/Documentation.html.
- User-based licensing. See new API details in the documentation.
- Added new exception type `LicenseFileException`. Could be thrown in case license file was damaged.
- Constructor of the LicenseManager now public. See details in the documentation.
- Added new methods `License.MaxActivations` and `License.TimesActivated`.
- Added ability to track MAC address.`CollectHostNameAndLocalIP` property renamed to `CollectNetworkInfo`.
- Stability and performance improvements.

### October 23, 2019, v4.7.0
- Added requests for creating licenses and orders. See `LicenseManager.CreateLicense` and `LicenseManager.CreateOrder`.
- Consumption license features. See `License.Features`, `License.IncreaseFeatureConsumption` and `LicenseFeature` class.
- Improved samples.

### September 27, 2019, v4.6.0
- New API request `License.SendCustomData`, it allows sending custom data to the platform. Data will be linked to a device, so on the platform see device variables.
- Changed license status logic, now it's possible to check whether license is active even if it was disabled. See `License.isActive`, `License.isEnabled` and `License.Status`.
- Added Windows Forms sample.
- Added .Net Standard 2.0 build.

### September 13, 2019, v4.5.1
- Fixed online license check and updating license status.
- Minor stability improvements.

### September 09, 2019, v4.5.0
- Added new feature - Custom product (license) data fields, see `License.CustomFields`.
- Fixed sending of optional parameters app name and version.
- Added `License.MaxDaysRemainingValue` constant.
- Fixed determining of OS name.

### August 19, 2019, v4.4.7
- Added new API method `License.IsOfflineActivated`, returns true if license was activated in offline mode.
- Fixed a few minor bugs, `License.IsExpired` now returns correct value for inactive or disabled license.

### July 31, 2019, v4.4.6
- Added ability to control network timeout interval.
- Added SDK builds for new .Net target framework versions (4.6.2, 4.7, 4.7.1 and 4.7.2).

### July 24, 2019, v4.4.4
- Fixed expiry policy for subscription license type.
- Fixed license re-enabling issue.

### June 25, 2019, v4.4.3
- Added ability to use alternate proxy and credentials, new class `ProxySettings`.

### June 20, 2019, v4.4.2
- Fixed issue with default proxy credentials.
- `LicenseSpringConfiguration.HardwareID` now available for reading.

### June 13, 2019, v4.4.1
- Detecting system clock cheating during local check, new exception type `DateTimeCheatingException`.
- New helper methods `DaysPassedSinceLastCheck`, `IsInitialized`.

### May 21, 2019, v4.4.0
- Offline licensing. New API methods - `GetOfflineActivationFile`, `ActivateLicenseOffline` and `DeactivateOffline`.
- Signature verification, security improvements.
- Stability and performance improvements.

### May 08, 2019, v4.3.1
- Fixed serialization bug of maximum DateTime values.

### May 06, 2019, v4.3.0
- Consumption licensing, new methods for ILicense - `IncreaseConsumptionCounter`, `TotalConsumptions`,
`MaxConsumptions` and new exception type `NotEnoughConsumptionException`. See sample app for details.
- Online check of the license now returns `InstallationFile` of the last available product version.

### May 03, 2019, v4.2.3
- Fixed calculation of hardware ID, now it's stable, for long term support.
- Added basic logging functionality, logging can be enabled through the `LicesenseSpringExtendedOptions`

### April 24, 2019, v4.2.2
- New license type - `Consumption`.
- Improved Hardware ID generation algorithm, now faster and less error prone.
- Added SDK usage sample from VBA scripts
- Fixed Factory classes that in use in COM interop (for VBA etc.)

### April 16, 2019, v4.2.1
- Ability to set custom hardware ID.
- `LicenseSpringExtendedOptions`, all optional SDK configuration properties now brought together in ExtendedOptions class, see sample app for details.
- `IsActive` was brought back for backward compatibility. Equivalent to `Status() == LicenseStatus.Active`.
- Stability and performance improvements, faster SDK initialization and license loading.
- Improved build script and sample app.

### April 15, 2019, v4.2.0
- License status, `IsActive` now replaced with `Status` for the ILicense interface.
- `Deactivate()` and `Check()` moved back to ILicense.
- New methods for checking license offline: `LocalCheck()`, `IsExpired()`, `DaysRemaining()`.
- New method for getting last online sync date: `LastCheckDate()`.
- Significantly improved LicenseData serrialization/deserialization. HardwareID and Product code now part of LicenseData.
- New `ProductMismatchException`, could be thrown in case license loaded from file does not correspond to configured product.
- Implemented version tolerant serialization for LicenseData.
- Improved sample app.
- Fixed handling of max date time (applicable to validity period of perpetual license or not set maintenance period).
