LabVIEW中加载.NET 2.0,3.0和3.5程序集
已使用.NETFramework 2.0,3.0或3.5创建了.NET程序集,但是当尝试在构造函数节点中加载这些程序集时,却收到LabVIEW消息显示: 所选文件不是.NET程序集,所属类型库或自动化可执行文件。所以想确认是否可以在LabVIEW中加载.NET 2.0,3.0或3.5程序集?
解决方案
将配置文件放在LabVIEW.exe所属目录下,且命名为LabVIEW.exe.config。下面的样例程序会指引LabVIEW加载面向CLR 2.0的.NET混合模式程序集:
<?xml version ="1.0"encoding ="utf-8"?>
<configuration>
<startupuseLegacyV2RuntimeActivationPolicy ="true">
<supportedRuntimeversion ="v4.0.30319"/>
</startup>
</configuration>
相关信息
LabVIEW使用一组默认配置来决定将引用哪个特定.NET程序集的版本以及将加载哪个通用语言运行库(CLR)的版本。例如,LabVIEW 2017默认使用.NET CLR 4.0,因为它可以使用.NET Framework 4.6.2,而LabVIEW 2012默认使用CLR 2.0,而CLR 2.0只能使用到.NET framework 3.5。可以创建.NET配置文件以覆写LabVIEW加载CLR的默认文件,并执行该配置文件。
也可以强行让LabVIEW加载面向CLR 2.0的.NET程序集。但是,配置面向旧版本CLR的程序集可能会出现难以预料的运行行为。
如果使用.NET2.0框架创建可执行应用程序,请确保在该文件所在的文件夹中也存在可执行的配置文件。它须与LabVIEW.exe所属文件下的配置文件完全相同,但必须将其重命名格式为(Executable Name).exe.config。
注意:所支持运行版本的Token必须与安装的.NET Framework版本相匹配。您可以通过检查已安装的.NET 2.0版本的“添加/删除程序”来验证该项是否一致。
NETFramework 4.0允许加载任何.NET Framework版本生成的纯管理程序集,以及.NET 4.0生成的混合模式程序集。默认情况下,LabVIEW会加载.NET通用语言运行时(CLR) 4.0,但也可强制LabVIEW使用CLR 4.0加载指向CLR2.0的.NET混合模式程序集。
注:.NETFramework 2.0、3.0和3.5使用CLR 2.0。但不能配置LabVIEW使用CLR 2.0。指向较早版本CLR的程序集在CLR 4.0中运行,且可能不按预期方式执行。
如需启用下列对象加载指向CLR 2.0的.NET混合模式程序集,必须使用下面的配置文件:
LabVIEW2013
LabVIEW2013生成的可执行程序
LabVIEW外部生成的可执行程序,调用LabVIEW中生成的互操作程序集或DLL
按照下列步骤,配置LabVIEW加载指向CLR 2.0的.NET混合模式程序集:
打开文本编辑器。
将下列文本复制到文本编辑器:
<?xmlversion ="1.0" encoding="utf-8" ?>
<configuration>
<startupuseLegacyV2RuntimeActivationPolicy="true">
<supportedRuntimeversion="v4.0.30319"/>
</startup>
</configuration>
将该配置文件保存在LabVIEW.exe同一个目录下。将文件命名为LabVIEW.exe.config。
重新启动LabVIEW。
LabVIEW将加载指向CLR 2.0的.NET混合模式程序集。
注:如要从使用.NET2.0混合模式程序集的VI或项目生成一个独立应用程序,应用程序的用户必须在运行程序的计算机上安装.NET Framework 2.0,并将配置文件applicationname.exe.config放在和应用程序相同的目录下。配置文件的内容和上述第二步中的配置文件相同。可考虑生成一个包含配置文件的安装程序,避免用户需自行创建配置文件。
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。