在LabVIEW中切换不同版本的.NET程序集

更新 Sep 20, 2023

适用于

软件

  • LabVIEW

程式语言

  • Visual Basic .NET

问题详述

我有一个可以使用两个不同程序集的LabVIEW程序。我希望能够选择要加载的程序集。两个程序集具有完全相同的名称,但具有不同的版本号。如何选择LabVIEW将加载的程序集?

解决方案

选项1 一次只将一个程序集加载到GAC(全局程序集缓存,Global Assembly Cache)中
由于LabVIEW的动态特性,该应用程序将仅发现并加载GAC中存在的程序集。

注:如果新程序集包含其他方法和属性,您仍将需要使用选项2或3中列出的配置文件,以便使用其他方法和属性正确地更新LabVIEW构造器节点。

选项2 这两个程序集都存在于GAC中
您可以使用.NET配置文件来选择LabVIEW项目/共享库/独立应用程序(可执行)应使用的程序集版本。例如,如果LabVIEW项目的名称为Test.lvproj ,则配置文件的名称应命名为Test.lvproj.config 。配置文件应与您要更改的LabVIEW项目位于同一文件夹中。有关更多信息,请检查配置.NET客户端应用程序 。下面列出了一个示例配置文件。
 

 
注意:可以从多个旧版本之一重定向到新版本。这可以通过在bindingRedirect标签中将oldVersion的参数指定为版本范围而不是单个版本号来完成。例如n.n.n.n-n.n.n.n

选项3 两个程序集都不需要在GAC中
您仍然可以使用.NET配置文件来选择LabVIEW项目/共享库/独立应用程序(可执行)应使用的程序集版本。有关更多信息,请查看配置.NET客户端应用程序

如果要浏览到特定文件夹以选择部件,则使用以下配置。唯一的区别是,程序集的路径<probing privatePath =“ Assembly \ ver2” /> ,其中Assembly \ ver2是项目中的子文件夹。该路径必须相对于配置文件所在的位置。强制VI先在特定文件夹中进行搜索,然后选择正确的版本。
 

 
配置文件注意事项:
  • 配置文件可用于LabVIEW 8.5及更高版本。
  • assemblyIdentity name =“ Test” - “Test"代表程序集的名称,并且必须与程序集的名称完全匹配才能正常运行。
  • publicKeyToken =“ xee7d93a67000dr7” -用于标识程序集。它是使用SN工具生成的。
  • oldVersion =“” newVersion =“” -表示您当前正在使用的版本以及您要使用的版本。
正确使用配置文件的步骤:
  1. 检查以确保LabVIEW代码在该程序集的一个版本中正确运行。关闭LabVIEW项目和LabVIEW。
  2. 打开配置文件,然后编辑代码以从当前版本更改为您要使用的版本。
  3. 重新打开LabVIEW和项目。然后运行LabVIEW代码。 LabVIEW代码现在将使用您指定的程序集版本。

相关信息

提示:从LabVIEW 2011开始,您可以使用“内存中的 .NET程序集 ”选项(位于LabVIEW的查看选板)来验证LabVIEW是否加载了正确版本的程序集。