Error al cargar ensamblados .NET en LabVIEW

Actualizado el Mar 28, 2024

Reportado en

Software

  • LabVIEW

Sistema Operativo

  • Windows

Otros

Asambleas .NET

Detalles del problema

Cuando trato de cargar ensamblados de .NET en LabVIEW, recibo uno de los siguientes mensajes de error:

An error occurred trying to load the assembly



The version of the assembly you requested was automatically promoted to a later version by the .NET runtime engine.

Solución

LabVIEW 2013 usa .NET 4.0 por defecto, las versiones posteriores de LabVIEW usan versiones más recientes de .NET framework por defecto. Al cargar un ensamblaje dirigido a cualquier versión anterior de .NET Framework, LabVIEW promoverá automáticamente el ensamblaje a la versión posterior.

Con .NET 4.0, se introdujo un nuevo modelo de seguridad. Este nuevo modelo de seguridad otorga automáticamente la confianza total a los ensambles disponibles localmente, pero no a los ensambles obtenidos de fuentes remotas como Internet, ubicaciones de red o por correo electrónico. En caso de que LabVIEW intente acceder al archivo dll de dicho ensamblaje con falta de confianza y, por lo tanto, se le niegue el acceso, LabVIEW devolverá un error: An error occurred trying to load the assembly.
Tenga en cuenta que: este mensaje de error también puede aparecer cuando intenta cargar una DLL de .NET de 64 bits en una versión de LabVIEW de 32 bits o viceversa.

Hay dos formas de otorgar plena confianza a los ensamblajes desde fuentes remotas. O bien, generalmente permitiendo que LabVIEW acceda a estos a través de un token en un archivo de configuración .NET , o permitiendo ensamblajes individuales manualmente.


Archivo de configuración .NET
Siga estos pasos para permitir que LabVIEW acceda a todo el ensamblaje .NET. Tenga en cuenta que este enfoque impone un riesgo de seguridad potencial.

  1. Use un editor de texto para crear un archivo que contenga el siguiente texto:
    <? xml version = "1.0"?>
    <configuration>
      <runtime>
        <loadFromRemoteSources enabled = "true" />
      </runtime>
    </configuration>
  2. Guarde este archivo como LabVIEW.exe.config para confiar en todos los ensamblajes cargados en LabVIEW, o consulte Configuring a .NET Client Application - LabVIEW 2017 Help  (en inglés) para obtener más información sobre cómo aplicar los archivos de configuración a los archivos de LabVIEW Project, bibliotecas compartidas o independiente ejecutables Tenga en cuenta que un alcance tan reducido reduce el riesgo potencial de seguridad al permitir generalmente que se carguen los ensamblados remotos.
  3. Coloque el archivo creado en el paso anterior en el mismo directorio en el que se creó: Por ejemplo, un archivo LabVIEW.exe.config en el mismo directorio que el archivo LabVIEW.exe , que generalmente se encuentra en C: \ Archivos de programa ( x86) \ National Instruments \ LabVIEW 2018 \ .


Otorgar derechos de acceso manualmente
Lo siguiente solo es posible en Windows 7 y versiones posteriores. Después de que LabVIEW no haya podido cargar un conjunto, Windows agrega una opción para desbloquear el conjunto en las propiedades del archivo:



Marque Desbloquear y haga clic en Aceptar para otorgar a un ensamblado la plena confianza.

Información adicional

Para obtener información sobre cómo cargar ensamblajes .NET 2.0, 3.0 o 3.5, consulte  Loading .NET 2.0, 3.0, and 3.5 Assemblies in LabVIEW - LabVIEW 2017 Help (en inglés). Tenga en cuenta que cuando utilice ensamblajes .NET, se sugiere utilizar un proyecto de LabVIEW en lugar de un VI independiente,.

Nota: Al usar cualquier solución de virtualización como Parallels Desktop, VMWare Fusion, o Oracle VirtualBox para ejecutar Windows dentro de una máquina virtual, el nuevo modelo de seguridad trata los directorios compartidos (por ejemplo, las carpetas que comienzan con / psf o \\ vmware-host \ ) como fuentes remotas, ya que se accede a ellas a través de un enlace de red. También debe otorgar plena confianza a los ensamblajes en estos directorios.