VL Documents can reference 3 different types of dependencies:
- VL Nugets
- .NET Nugets
When a document references a dependency, it means that all public nodes in that dependency will be available to it via the NodeBrowser.
NuGet is the package managing system for .NET. Nugets are packages that can contain many .dll and/or .vl files that expose nodes to the referencing document.
For installing nugets, see Managing Nugets.
VL vs. .NET Nugets
A VL Nuget is a nuget specifically created for use with vl that won't work for any other .NET language. It is still a valid nuget in the original terms of NuGet but since it contains .vl documents it will not be useable outside of vl.
A .NET Nuget on the other hand is more generally targetting any .NET language.
You can reference either VL or .NET nugets via the menu by navigating to it and pressing the right mousebutton to toggle its selection:
If a nuget that is referenced by a document cannot be found, it will be listed in red in the Dependencies menu. In such a case a rightclick on a red entry allows you to:
- Install: attempt to install from nuget.org. This will obviously only work if the nuget can be found online
- Remove Reference: remove this nuget as a dependency of this document
Note that you can rightlclick to select multiple red entries and then choose to apply either install or remove to all of them at once.
Some nugets are shipping with or depending on unmanaged/native .dlls which cannot be picked up by vl automatically since there isn't a pattern in the nuget specification as to how those should be handled. So in order to get such unmanaged dependencies of a nuget picked up, for now you'll have to add a search-path for vl via a batch file, like so:
SET PATH=%PATH%;c:\path\to\nugets\nativelibs; vvvv.exe
A vl document can reference other .vl documents and managed .dll files.
Here are 3 ways to reference local files:
- Drop a .vl or .dll file onto a patch
- Press CtrlR to select files via a file browser
- Via menu:Document[Dependencies > Files > Add Existing...]
Files that are showing up in red cannot be found on disk. You can rightclick to remove ore replace their reference.
Removing or Replacing Files
You can rightclick a file reference to remove or replace it. Note that you can also rightclick to select multiple files in a row and then apply "Remove" to all of them at once.
Duplicate reference warning
When referencing a .dll you may encounter a warning similar to the following warning:
The warning pops up because a file with the same name is already loaded by vvvv.
There are two situations in which this may occur:
Changing the location from which to load a .dll:
You've set a reference to the .dll before but have since moved it to a different location on disk and now want to fix the reference to that new position.
Referencing a .dll that vvvv itself has already loaded:
You're setting a reference to a .dll in one location but a .dll with the same name has already been loaded from another location, most likely by vvvv itself.
If you are certain that those are actually the same files, only in a different location, then you can ignore the warning.
Otherwise in case 1) restarting vvvv should help, but in case 2) you'll actually not have a chance to get this solved. .dlls loaded by vvvv cannot be changed at all. If for some reason you need to use a newer version of a .dll than the one vvvv is currently using, please start a thread on the forum about this and we'll see what we can do.
Libraries from the GAC (Global Assembly Cache)
By default .NET comes with a large number of assemblies that can be referenced. They are stored in the GAC on all machines that have .NET installed and can be referenced from there via:
- Press CtrlShiftR
Document > Dependencies > Files > Add .NET Framework Assembly...
In the dialog you need to double-click entries that you want to add as references.