Error 7 en ejecutable al usar la constante de ruta del VI actual

Actualizado el Nov 15, 2019

Reportado en

Software

  • LabVIEW Application Builder Module
  • LabVIEW

Detalles del problema

Estoy usando la constante de ruta del VI actual y quitando el nombre del VI para acceder al directorio propietario. Esto funciona en el entorno de desarrollo, pero cuando construyo mi VI en un ejecutable, tengo algunos problemas, que incluyen, entre otros, que se produjo el error 7 en New File .

¿Cómo construyo mi VI para evitar cambios al implementarlo como un ejecutable?

Solución

El problema puede abordarse de la siguiente manera:

  • En las versiones de LabVIEW 2009 y posteriores, se puede usar el Application Directory VI.

Nota: Si se llama a este VI desde una aplicación independiente, este VI devuelve la ruta a la carpeta que contiene la aplicación independiente. Si llama a este VI desde el entorno de desarrollo y el VI se carga en un archivo de proyecto de LabVIEW ( .lvproj ), este VI devuelve la ruta a la carpeta que contiene el archivo del proyecto. Si el proyecto no se guarda, este VI devuelve  <Not a Path>, o sea, no hay ruta. Si el VI de nivel superior no se carga en un proyecto, el VI devuelve la ruta al directorio que contiene el VI de nivel superior. Si el VI no se guarda en el disco, este VI devuelve <Not a Path>, o sea, no hay ruta.

  • Para las versiones de LabVIEW anteriores a 2009, puede usar un nodo de propiedades de la aplicación para determinar mediante programación en qué entorno se está ejecutando, y en función de esa franja de la ruta una o dos veces. En la captura de pantalla que se muestra a continuación, puede ver cómo lograr esto.

  • Otra opción es utilizar el Application Directory property node para encontrar el directorio de un ejecutable.

Nota: el VI más a la izquierda es Open Application Reference, y no el Open VI Reference. Además, dado que esta propiedad busca ejecutables de LabVIEW en ejecucción, durante el desarrollo, esta propiedad devuelve la ruta a su instancia actual de LabVIEW.

 

Información adicional

El nodo de ruta (del inglés Path node) del VI actual devuelve la ruta completa, incluido el nombre del VI. Esta ruta varía en función de si el VI se está ejecutando en el entorno de desarrollo de LabVIEW o en una aplicación independiente. LabVIEW envuelve todos los VI asociados con una aplicación independiente en una capa adicional, que es propiamente el ejecutable mismo.

Considere un VI llamado Application.vi ubicado en el directorio raíz del disco duro (por ejemplo, C: \ ). En el entorno de desarrollo de LabVIEW, la función Path del VI actual devuelve:

C: \ Application.vi 

Ahora considere el mismo VI integrado en una aplicación independiente llamada MyApplication.exe . Cuando se ejecuta, la función de Path del VI actual regresa:

C: \ MyApplication.exe \ Application.vi

Como puede ver en las diferentes rutas de archivos anteriores, debe extraer las rutas de manera diferente dependiendo de si se está ejecutando en el entorno de desarrollo o en un ejecutable independiente.

Un enfoque más manual del problema es buscar la ruta para .exe . Si no está presente en la ruta, solo necesita extraer la ruta una vez para obtener el directorio propietario. Si está presente en la ruta, debe extraer la ruta dos veces para devolver el directorio propietario.