Creating several plugins that reference the same external DLL

I’m developing a plugin that produces a custom C# object which can then be passed to several other plugins (that I’ll be developing) to retrieve information from that custom object. All of these plugins need to reference the same external DLL so they can grab the various pieces of information. I’ve done the plugin that produces the object and put the external DLL in the same directory with that plugin. So far so good.

Do I need to make a copy of the same DLL in the directories for all the other plugins or can I reference it as a relative path from each of the other plugins? Putting a separate copy in each directory is a bit of a pain because I’m also developing/improving the DLL so each time I produce a new version of it, it will have to be copied to all these individual directories. I could, of course, just TRY it, but I’m not so trusting that if even if I did get something like this to work on my machine that it would work on somebody else’s who downloaded it as a contribution (for instance).

Is it possible that I can just build several projects as part of one solution, each project which would represent a separate VVVV plugin? That would actually be ideal.

I’ll experiment around but I’d love to have somebody’s more definitive statement on such a thing than just accidentally finding something on my own that happens to work on my machine at this moment.

Thanks for any help on this!

The details of what you need are not entirely clear, do you need to have multiple plug-in projects or just multiple nodes?

You can easily have multiple vvvv nodes in one project so you only need to reference the dll once.

if you made multiple plugins (via cloning or else) you can put the DLL somewhere and open the project explorer (CTRL+J) to reference the DLL on each plugin as you would do in any other IDE. then the DLL gets copied to the output automatically.

in general .NET loads a DLL only once, so if one Plugin finds the DLL all others will find it as well.

but as beyon said, you can put multiple nodes in one file and work with only one project if that’s applicable for you.

Here’s the precise scenario: I have a DLL I made to produce Voronoi diagrams. The current Voronoi node doesn’t really give as much information as you sometimes need. In my case, I return an object that has all the information. I then want to create several other nodes to access that object to pull various sorts of information from it - the edges surrounding each node, which nodes are opposite which other nodes across edges, etc… I’ve found that I can just produce more than one C# object in the single project and they all seem to show up in VVVV which is the best possible scenario.

I’ve actually got this started and here’s kind of what I’m talking about:

So the VoronoiComplex node produces the C# object and the VoronoiEdges node pulls the edges from the result. This produces this output:

Anyway, as you can see, I think I’ve got things going now. Thanks for the help.

amazing, looking fwd to this!
quick rant: it seems from the VoronoiEdges node you return X1, Y1 and X2, Y2 to fit nicely with the gdi node. consider the more modern approach and return two Vector2 instead then augment each with a z component using the xyZ (3d XY) for use in 3d scenarios…

joreg - it’s been a while since I’ve done vvvv - just getting back into it. If that’s the “modern” way then sure, that’s the way I’ll do it. Still deciding on how all this should fit together. Thanks for the suggestion.