Referencing Libraries / 引用节点库
VL 文档可以引用 3 种不同类型的依赖:
- VL NuGet
- .NET NuGet
- 文件
当一个文档引用了某个依赖,就意味着那个依赖里所有公开的节点都能通过节点浏览器在这个文档里用上。
Nugets / NuGet
NuGet 是 .NET 的包管理系统。一个 NuGet 就是一个包,里面可以装很多 .dll 和/或 .vl 文件,为引用这个包的文档提供节点。
安装 NuGet 的方法见管理 NuGet。
VL vs. .NET Nugets / VL NuGet 与 .NET NuGet
VL NuGet 是专为 vl 做的 NuGet,别的 .NET 语言用不了。按 NuGet 原本的定义,这仍是一个合法的 NuGet,只是里面装着 .vl 文档,出了 vl 就没用。
.NET NuGet 则更笼统地面向任何 .NET 语言。
在菜单里找到某个 VL 或 .NET NuGet,右键切换选中状态,就引用上了:
右键切换添加/移除一个 NuGet 引用
Missing Nugets / 找不到的 NuGet
文档引用的 NuGet 如果找不到,会在 Dependencies 菜单里标成红色。右键点这条红色条目,你可以:
- Install:尝试从 nuget.org 安装。显然这只在该 NuGet 能在线找到时才管用
- Remove Reference:把这个 NuGet 从本文档的依赖中移除
红色条目可以用右键选中多条,一次性全部安装或移除。
找不到的 NuGet 的几个选项
Unmanaged/Native dependencies / 非托管/原生依赖
有些 NuGet 自带或依赖非托管/原生 .dll,vl 认不出来 —— NuGet 规范压根没规定这类文件该怎么处理。眼下要让这类非托管依赖被认出来,得写个批处理文件给 vl 加一条搜索路径,像这样:
SET PATH=%PATH%;c:\path\to\nugets\nativelibs;
vvvv.exe
Files / 文件
一个 vl 文档可以引用别的 .vl 文档和托管的 .dll 文件。
From Disk / 来自磁盘
引用本地文件有 3 种方式:
- 按 CtrlShiftE 通过文件浏览器选择文件
- 通过
Document > Dependencies > Files > Add Existing... - 通过
Document > Dependencies > Files > Add New
把一个已有文件添加为依赖
Missing Files / 找不到的文件
标成红色的文件在磁盘上找不到。右键可以移除或替换这条引用。
Removing or Replacing Files / 移除或替换文件
右键点一条文件引用,可以移除或替换。也可以用右键连着选中多个文件,一次性全部 Remove。
移除文件
Duplicate reference warning / 重复引用警告
引用一个 .dll 时,你可能会遇到类似下面这样的警告:

这个警告之所以弹出,是因为 vvvv 已经加载了一个同名文件。
有两种情况会碰上这个:
- 改变加载 .dll 的位置:你先前设过指向这个 .dll 的引用,但此后把它在磁盘上挪了地方,现在想把引用修正到新位置。
- 引用了一个 vvvv 自己已经加载过的 .dll:你正在设一个指向某处 .dll 的引用,但一个同名的 .dll 已经从别处被加载了 —— 多半是 vvvv 自己加载的。
如果你确定那确实是同一批文件、只是位置不同,那就可以无视这个警告。
否则,情况 1 重启 vvvv 应该能解决;但情况 2 你其实没有机会解决 —— vvvv 加载过的 .dll 完全没法更换。如果出于某些原因你需要用比 vvvv 当前所用更新版本的某个 .dll,请到论坛上开一贴说说,我们看看能做点什么。
Libraries from the GAC (Global Assembly Cache) / 来自 GAC(全局程序集缓存)的库
.NET 默认自带大量可以引用的程序集。装了 .NET 的机器上,这些程序集都在 GAC 里,可以这样引用:
- 按 CtrlAltE
- 通过
Document > Dependencies > Files > Add .NET Framework Assembly...
在弹出的对话框里,双击你想添加为引用的条目。
在这个窗口里用 CtrlF 查找 GAC 里的库