在LabVIEW中加载.NET程序集时出错

更新 Sep 9, 2019

适用于

Software

  • LabVIEW

Operating System

  • Windows

其他

.NET程序集

问题详述

当我尝试在LabVIEW中加载.NET程序集时,收到以下错误消息之一:

尝试加载程序集时发生错误




您请求的程序集版本由.NET运行引擎自动提升为更高版本。

解决方案

LabVIEW 2013默认使用.NET 4.0,LabVIEW的更高版本默认使用更新版本的.NET架构。当加载针对于任何早期版本的.NET 架构的程序集时,LabVIEW会自动将程序集提升到更高版本。

在.NET 4.0中,引入了一种新的安全模型。这个新的安全模型会自动授予对本地可用程序集的完全信任,但不会自动授予从互联网,网络位置或电子邮件等远程资源中获取的程序集完全信任。如果LabVIEW试图访问这样缺少信任的程序集dll文件,并因此被拒绝访问时,LabVIEW将返回错误: 尝试加载程序集时发生错误
请注意:当您尝试将64位.NET DLL加载到32位版本的LabVIEW中时,也可能出现此错误消息,反之亦然。

有两种方法可以使来自远程资源的程序集获得完全信任。一种方法是允许LabVIEW通过.NET配置文件中的标记访问这些文件 ,另一种方法是手动允许单个的程序集。


.NET配置文件
按照以下步骤操作,允许LabVIEW访问所有.NET程序集。请注意,此方法存在潜在的安全风险。

       1. 使用文本编辑器创建包含以下文本的文件:
          <?xml version ="1.0"?>
          <configuration>
          <runtime>
          <loadFromRemoteSources enabled="true" />
          </runtime>
          </configuration> 

        2. 将此文件另存为LabVIEW.exe.config以信任加载到LabVIEW中的所有程序集,或参阅Configuring a .NET Client Application - LabVIEW 2017 Help来获取更多关于如何将配置文件应用于LabVIEW项目文件,共享库或独立的可执行文件的信息。请注意,这样通过允许加载远程程序集,缩小作用域的方法,能够降低潜在的安全风险。
        3. 请将上一步中创建的文件放置在之所以创建该文件的原文件目录中:例如,LabVIEW.exe.config文件要放置于LabVIEW.exe 文件的目录中,通常位于 C:\Program Files (x86)\National Instruments\LabVIEW 2018\。

手动授予访问权限
以下内容仅适用于Windows 7以及更高版本。 LabVIEW加载程序集失败后 ,Windows会在文件属性上添加一个选项来取消阻止程序集:



选中“ 取消阻止”并单击“ 确定”以授予对程序集的完全信任。

相关信息

有关加载.NET 2.0,3.0或3.5版本程序集的信息,请参阅 Loading .NET 2.0, 3.0, and 3.5 Assemblies in LabVIEW - LabVIEW 2017 Help 。请注意,使用.NET程序集时,建议使用LabVIEW项目而不是独立的VI。

注意:在虚拟机内使用Parallels Desktop,VMWare Fusion或Oracle VirtualBox等任何虚拟化解决方案运行Windows时,新的安全模型会将共享目录(例如以/psf\\vmware-host\开头的文件夹)视为远程资源,因为它们是通过网络链接访问的。您还需要在这些目录中授予对程序集的完全信任。

本文是否有帮助?

无帮助