Skip to content

Managing Plugins

NyxionSoftware edited this page Aug 5, 2026 · 3 revisions

Managing Plugins

Open Manage Plugins from the main toolbar. The page lists plugin identity, author, version, runtime state, settings availability, and load errors.

Import

The importer accepts one DLL, a selected collection of related DLLs, or a ZIP archive. Collections and archives are placed in a named subdirectory. Private dependencies and native files should be packaged with the plugin; application contract DLLs should not.

Enable and disable

The runtime toggle calls EnableAsync or DisableAsync immediately. A well-behaved plugin can be disabled and re-enabled without restarting and without duplicating UI or event subscriptions.

During disable/unload the host also removes registered UI cleanup actions, plugin dialogs, resource dictionaries, and plugin load contexts. Plugins must still release their own references.

Settings

The Settings action is available when a plugin implements IPluginSettingsProvider. Settings are persisted in the configured plugin-data directory and applied through OnSettingChangedAsync.

Refresh versus storage reload

Refresh Installed Plugins discovers new plugin assemblies in the current directory without requiring an application restart.

Changing the plugin directory in Application Settings performs a full reload:

  1. Disable and dispose currently loaded plugins.
  2. Remove their UI and theme resources.
  3. Unload their assembly load contexts.
  4. Create the new plugin directory when missing.
  5. Load plugins found in the new directory.

Changing the plugin-data directory also performs a full reload so new IPluginDataStore instances point to the new location. Existing data already in that folder is loaded normally.

Delete

Delete asks for confirmation, unloads the plugin package, and removes its files. Deletion safety only permits files within the currently configured plugin directory. If unload repeatedly fails, inspect the log for retained event handlers, timers, windows, media objects, threads, or static references.

Open Plugin Directory

The button resolves the currently configured plugin directory when clicked, creates it if missing, and opens it in Explorer. The path can be a per-user override or workstation default.

Logs

Plugins receive IPluginContext.Logger. Their messages appear in the same application session log under a Plugin.<name> category. This is the first place to inspect initialization, dependency, setting, or cleanup failures.

Clone this wiki locally