Pelco Developer Network (PDN)

OCC Plugin dependencies

Version mismatch on dependent dlls

I'm working on upgrading some plugins that are dependent upon some reusable components we build. We are registering request with our backend to send updated data for display in the plugin. The mechanism uses Microsoft SignalR technologies, so our plugin installer includes the Microsoft.AspNet.SignalR.Client.dll.

Problem is, SignalR depends upon Newtonsoft.Json.dll, and explicitly required version 6.0.4 or greater of that dll. We include that in our plugin installer, but it's never loaded since the Pelco OpsCenter folder contains version 5.0.8 of that same dll, and Pelco PluginProcess64.exe appears to be running with that as it's local directory.

So, as a result, my code catches and exception when it tries to use the SignalR client, stating: "Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. "

I tried dropping version 6.0.4 into the ops center folder, to see if it could be used, but ops center couldn't connect to the server with that.

Since I don't control the dependencies of SignalR, I think I'm stuck.

Is there a way to coerce a plugin to use one dependency over another? Or otherwise control which versions of dependencies are being loaded?

Hello, is this thing on?

I had got a test version of a pre-release that was supposed to address this problem. It didn't.
I even sent a copy of my plugins, with logging, that demonstrated the problem, and logged the exact error encountered.
Since then, I haven't heard a thing.
Will this ever get any attention?

Yes, this is being monitored. This problem is taking a long time to fix. A future version of OCC will run the plug-ins in a different process which will allow the plug-in to use its own DLL's without interference.