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



主要软件:
主要软件版本: 6.0
主要软件修正版本: N/A
次要软件: N/A

问题: 我有一个LabVIEW程序使用了两个不同的程序集。我希望能选择需要载入的程序集。两个程序集有完全相同的名字,但版本不同。我该怎么选择让LabVIEW载入某个程序集?

解答:

有三个办法可以解决这个问题:

方法1 每次只加载一个程序集到GAC中基于LabVIEW的动态特性,LabVIEW会发现并加载GAC中出现的程序集。

注意:如果新的程序集包含新增的方法和属性,仍然需要使用方法2或3中列出的配置文件,这样LabVIEW构造器结点才会正确得更新新增的方法和属性。

方法2 两个程序集都出现在GAC中:可以使用一个.NET配置文件来选择LabVIEW项目、共享库或单机应用程序(可执行文件)所使用的程序集。例如,如果LabVIEW的项目名为Test.lvproj,那么配置文件需以Test.lvproj.config来命名。配置文件需放在被修改LabVIEW项目所在的文件夹下。更多的信息可以查看一下帮助文档 Product Manuals: Configuring a .NET Client Application。如下是一个范例配置文件。



注意:从多个旧版本之一重定向至新版本是可行的。这可以通过指定bindingRedirect标签中的oldVersion参数为一个版本范围而不是一个单一的版本号来实现。

方法3 两个程序集都不需要出现在GAC中仍可以使用一个.NET配置文件来选择LabVIEW项目、共享库或单机应用程序(可执行文件)所使用的程序集。更多的信息可以查看一下的帮助文档 Product Manuals: Configuring a .NET Client Application

如果浏览特定的文件夹来选择程序集,那么可以使用如下的配置文件。这里唯一的区别是提及的程序集路径<probing privatePath="Assembly\ver2"/>,其中Assembly\ver2是项目中的子文件夹。这个路径必须与当前配置文件所在的位置相关。强制VI首先在指定的文件夹下搜索,从而选择正确的版本。



配置文件有一下几点考虑:

正确使用配置文件的步骤:

  1. 检查并确保LabVIEW代码能使用一个版本的程序集正常运行。关闭LabVIEW项目和LabVIEW。
  2. 打开配置文件并编辑代码来更改当前版本至想使用的版本。
  3. 重新打开LabVIEW和项目。然后运行LabVIEW代码。此时LabVIEW代码会使用指定版本的程序集。

TIP: Beginning with LabVIEW 2011, you can use the .NET Assemblies in Memory dialog box to verify that LabVIEW loads the correct version of an assembly.

提示:从LabVIEW 2011开始,能在内存对话框中使用.NET程序集来验证LabVIEW是否载入了正确版本的程序集。



相关链接: LabVIEW 2011 Help: .NET Assemblies in Memory Dialog Box
LabVIEW 2011 Help: Configuring a .NET Client Application
LabVIEW 2011 Help: Loading .NET Assemblies
MSDN: Redirecting Assembly Versions
MSDN: <bindingRedirect> Element
MSDN: Creating and Using Strong-Named Assemblies

附件:


Test.lvproj.config - Test.lvproj.config
config_file_1.gif - config_file_1.gifconfig_file_2.gif - config_file_2.gif


报告日期: 01/13/2009
最近更新: 10/15/2015
文档编号: 4TCCT2PJ