Hosihikari.PluginManager 1.1.0

dotnet add package Hosihikari.PluginManager --version 1.1.0
                    
NuGet\Install-Package Hosihikari.PluginManager -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Hosihikari.PluginManager" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Hosihikari.PluginManager" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Hosihikari.PluginManager" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Hosihikari.PluginManager --version 1.1.0
                    
#r "nuget: Hosihikari.PluginManager, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Hosihikari.PluginManager@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Hosihikari.PluginManager&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Hosihikari.PluginManager&version=1.1.0
                    
Install as a Cake Tool

Hosihikari.PluginManager

English | 简体中文

The core of the Hosihikari framework: it discovers plugin packages, loads them in dependency order, puts each one in its own collectible ALC, drives its lifecycle, and — when any step fails — takes down only that plugin.

The plugin contract lives in another repository and another package: Hosihikari.Plugin.Abstractions.

What is in this repository

src/ The core: discovery, dependency graph, the assembly loader, lifecycle, failure isolation
tools/Pack/ The packaging tool: assembles plugin packages and rejects the rules whose failure would otherwise surface far from their cause
test/Foo, test/Bar Two test plugins — and the packaging tool's first two users
host/ The assertion host: a plain .NET console, touching no BDS, no Shim, no carrier

Running it

dotnet run --project host/Hosihikari.PluginManager.Host.csproj -c Release

It runs the whole assertion list and exits non-zero if any of them fails. -c Release is required — a Debug build keeps local variable references alive and makes the unload verification fail spuriously.

That command is what CI runs, and it gets the contract from nuget.org the same way an external plugin author does.

How the contract is obtained

The projects under src/ and test/ pick between two references automatically, depending on whether the sibling checkout exists:

  • Both repositories side by side → ProjectReference. Changing the contract needs no repack.

The RID-first native library probe uses the McMaster fork; check that out as a sibling too (CI does).

  • This repository alone (CI, and any external consumer) → PackageReference, pinned to an exact version.

As a lip package

A v* tag builds hosihikari-core-<version>.zip and publishes it as github.com/HosihikariFramework/PluginManager. The package installs the managed core under plugins/hosihikari/; the native Shim package declares a compatible Core version as a lip dependency. The native and managed sides check HostingContractVersion at startup.

For a source deployment, bash ./pack.sh <version> builds the same archive locally.

What is not here

  • The Shim — the native layer that hosts the CLR inside the BDS process — is its own repository.
  • The out-of-process bridge — RpcLoader is an official loader; it runs plugins in child processes instead of AOT-compiling source to IL. The core knows the IPluginLoader contract and nothing about the child process beyond it.
  • Any BDS-specific capability — worlds, entities, commands and game events are outside the framework's capability surface.

Licence

LGPL-3.0-or-later, see LICENSE.md.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Hosihikari.PluginManager:

Package Downloads
Hosihikari.Testing

Test host and in-memory host services for Hosihikari plugins.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 52 10/22/2026