我正在使用 LabVIEW 8.5、Testand 4.0 和 Windows XP。
我一直在使用调用.Net dll(在v2.0中创建,非强类型,未在GAC中添加)的LabVIEW Vi,以及成功调用这些Vi的Testand序列。
随着 dll 的版本发生变化,我将新的 dll 拖放到相同的位置,一切都变得松散了。已经工作的 Vi 中断,如果我添加一个新 VI 并指向新的 dll,构造函数节点会抱怨“无法加载程序集”。
我尝试了一个解决方法:http: //digital.ni.com/public.nsf/allkb/3C5F47E9845C535286257C7100501990
我尝试了以下步骤:
- 关闭 LabVIEW 和项目
- 删除旧的dll
- 打开LabVIEW,打开项目,打开任何试图使用旧dll的VI。它找不到它,所以我停止加载 VI
- 关闭LabVIEW,将新的dll拖放到同一位置(以及该dll使用的其他一些dll和exe,但它们保持不变)
- 打开LabVIEW,打开项目,新建VI,添加Constructor节点并将其指向新的DLL
- 关闭 Vi 而不保存它,然后打开现有的 Vi 并将它们指向新的 dll
- 保存并关闭项目
问题是,这种解决方法有时有效,但多次无效。即使,如果我更改第 4 步,并将新的 DLL 及其依赖项拖放到新位置(稍后将其带回)并重复其他步骤,仍然不能确定性地解决问题。
我已经尝试升级到Lv2014,但问题仍然存在。此外,如果它在任何时候工作,我从 TS 运行相同的 VI(并且我升级到 Ts 2014,这本身意味着进行大量的流程模型更改和代码更改),它抱怨 dll 解析和失败的路径之一。我回到 LaBVIEW,现在它无法再次加载 dll。
我在这项工作中损失了将近一个月,因此感谢您提供任何帮助。我不敢相信 NI 没有对此的永久修复,或者如果有的话,除了我上面引用的那个之外,我不知道它。
要么我这样做不正确,要么 DLL 需要以特定方式在 VS 2010 中构建,或者在运行 LabVIEW/TS .net 服务种子以在复制新程序集时进行修改,我不知道。