New features:
Added PreferPlugin option to UseHostApplicationAssemblies
UseHostApplicationAssemblies is used to determine what happens if the host application and the plugin reference the same DLL but a different version. Common example is that the plugin and host reference different versions of Newtonsoft.Json.
Previously UseHostApplicationAssemblies supported three options:
/// <summary>
/// Never use user host application's assemblies
/// </summary>
Never,
/// <summary>
/// Only use the listed hosted application assemblies
/// </summary>
Selected,
/// <summary>
/// Always try to use host application's assemblies
/// </summary>
Always,
Now a fourth one has been added:
/// <summary>
/// Prefer plugin's referenced assemblies, fallback to host application's assemblies
/// </summary>
PreferPlugin
The idea is that if a plugin can't locate the referenced DLL, it fallbacks to the host.
This sounds like a big new feature but actually functionality wise nothing except logging changes compared to the UseHostApplicationAssembliesEnum.Never. The Never-option already returned Null from Plugin's AssemblyLoadContext if the referenced DLL wasn't found, meaning loading reverted to host's assemblies. But previously it wrote a warning log. Now there is no warning message.