03-26-2021 02:32 PM
Several others have discussed some of the obstacles to overcome when building the editor into an executable. I've encountered another obstacle that doesn't seem to have been discussed. I managed to get the editor EXE to a point where I can open and edit .pcfg files, but when trying to deploy, I encounter an error because the syslog .so files can't be found.
These files have to be deployed at least once as discussed in this post:
https://forums.ni.com/t5/Distributed-Control-Automation/DCAF-Event-Logging-with-Syslog/td-p/3586880
In LabVIEW 2017, the default location for these files is here:
C:\Program Files (x86)\National Instruments\LabVIEW 2017\vi.lib\NI\Syslog Wrapper - Linux
That local path gets written to the .pcfg file in a VI called "Add default dependencies.vi".
C:\Program Files (x86)\National Instruments\LabVIEW 2017\vi.lib\NI\DCAF\Tag Editor Core\Configuration Editor\Classes\Targets\Add default dependencies.vi
Assuming LabVIEW and DCAF haven't been installed on the computer that has the executable editor installed, the deployment tool within the editor won't be able to find those files.
To fix this, it should work regardless of whether the .pcfg file was created from a development editor or executable editor. Assuming the local path in the .pcfg file will always point to a folder installed in the dev environment, at the point the deployment is attempted from run-time, the application needs to search within its own application folder for the file.
I can fix this on my end. Of course that change would get wiped out if I reinstalled DCAF so I should probably submit a pull request on Github where this code lives and cross my fingers that someone accepts the request.
03-26-2021 06:16 PM
Additionally, a problem arises when saving a .pcfg file from an executable DCAF editor.
There is code that assumes you are running from dev environment and defines the local path to the .so files. On my system, that VI lives here:
C:\Program Files (x86)\National Instruments\LabVIEW 2017\vi.lib\NI\DCAF\Tag Editor Core\Configuration Editor\Classes\Targets\Add default dependencies.vi
I attached a temporary workaround. If Run Time System, then I hard coded the path to vi.lib on my system. Obviously this wouldn't work for any other version of LabVIEW.