tanrr / Tanrr.VAPlugin.BMSRadio

VoiceAttack Plugin for BMS Radio Menus
GNU General Public License v3.0
2 stars 1 forks source link

Workaround for Newtonsoft.Json.dll dependency requiring copying dll to ..\VoiceAttack\Shared\Assemblies #7

Open tanrr opened 1 year ago

tanrr commented 1 year ago

Currently, using the Newtonsoft.Json.Schema.dll appears to force either the plugin dll or VoiceAttack itself to look SPECIFICALLY for an older version (12.0.0.0) of Newtonsoft.Json.dll, even though a newer one (13.0.0.x) is in the same directory as my plugin. This causes a failure during init for the plugin.

Putting the SAME 13.0.0.x Newtonsoft.Json.dll into ..\VoiceAttack\Shared\Assemblies and everything works. However, this requires an extra step of copying a file by the user. Better if they don't need to copy a file, and better if we're not putting stuff into a shared assembly space if it's not really meant for that. And better if user only needs to install the single folder, not run an installer.

One possibility here, though VoiceAttack itself doesn't use Newtonsoft.Json.dll, is that the Telerik.WinControls and Telerik.Windows.Controls libraries used by VA might still use Newtonsoft.Json. Older versions of them did use it.

tanrr commented 1 year ago

In dev v0.1.6 added additional logging of actual loaded assemblies, before failures to load or exceptions due to mismatched versions happen. Also updated logs output when we do get those failures to direct users to possible solutions.