拖放新的.net dll不会在labVIEW中加载它

时间:2015-01-07 19:26:00

标签: .net dll labview teststand

我正在使用LabVIEW 8.5,Testand 4.0和Windows XP。

我一直在使用LabVIEW Vi,它调用.Net dll(在v2.0中创建,不是强类型,不在GAC中添加),以及成功调用这些Vi的Testand序列。

随着dll的版本发生变化,我将新的dll拖放到同一个位置,所有的地狱都会松动。已经工作的Vi中断,如果我添加一个新的VI并指向新的dll,Constructor节点会抱怨“无法加载程序集”。

我尝试了一个解决方法: http://digital.ni.com/public.nsf/allkb/3C5F47E9845C535286257C7100501990

我尝试了以下步骤:

  1. 关闭LabVIEW和项目
  2. 删除旧的dll
  3. 打开LabVIEW,打开项目,打开任何试图使用旧dll的VI。 它找不到它,所以我停止加载VI
  4. 关闭labVIEW,将新dll拖放到同一位置(以及此dll使用的其他一些dll和exe,但它们保持不变)
  5. 打开LabVIEW,打开项目,创建新VI,添加Constructor节点并将其指向新DLL
  6. 关闭Vi而不保存它,打开现有的Vi并将它们指向新的dll
  7. 保存并关闭项目
  8. 问题是,这种解决方法有时会起作用,并且不会多次工作。即使如果我更改第4步,并将新的DLL及其依赖项拖放到新位置(稍后将其恢复)并重复其他步骤,仍然无法以确定的方式解决问题。

    我已尝试升级到Lv2014,但问题仍然存在。此外,如果任何时候它工作,我从TS运行相同的VI(我升级到Ts 2014,这本身意味着做了很多流程模型更改和代码更改),它抱怨dll解决和失败的路径之一。我回到LaBVIEW,现在,它无法再次加载dll。

    我已经失去了近一个月的努力,所以任何帮助都表示赞赏。 我无法相信NI没有永久性的解决方案,或者如果有的话,除了上面引用的那个之外,我不知道它。

    要么我这样做不正确,要么DLL需要以特定方式在VS 2010中构建,或者在复制新程序集时运行LabVIEW / TS .net服务种子进行修改,我不知道。

0 个答案:

没有答案