LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Creating Installer for Executable - does the NI dependent software get automatically installed?

Solved!
Go to solution

Hey Fancy Folk,

 

TLDR;

So I've been working with LV for a few years now and I recently had to build an installer for a fresh PC that has never had LV or the RTE installed on it.  I am running into an issue with getting my executable to run and I think it's because the associated NI software isn't installed when I am using the installer.  I was wondering if NI installers will install the required software to get my code running.

 

Problem:

I have code that uses XNET, DAQmx, and Python to control communications to a motor.  When I build the executable and run it on my PC, everything works fine (thank you conditional disable loops for RUN_TIME_ENGINE == True for relative pathing).  I then created an installed for the fresh PC (literally booted for the first time yesterday) and installed my code.  However, the run arrow is disabled and when I click on it, I get a 46308 error.  I am assuming since the executable runs on my dev machine that I don't have a problem with the executable itself, but the new PC.

 

Steps so far:

I found this article going over basic problem solving steps.  Since I believe my issue is with the Deployment machine, I went down that section to start troubleshooting.  First I checked the .NET stuff and my PC has 2.0, 3.5, 4, and 4.0 while the deployed PC has .NET 4 and 4.0.  I am assuming that the executable on my PC uses .NET 4 or 4.0 but I'm not sure.

 

The next step would be to verify that all NI and third party drivers are installed on the deployed PC.  I went to search for NI MAX to see what was installed and I don't see it.  I assumed since my code calls the XNET, DAQmx, and Python modules that the modules would be included when the installer is created.  

 

Since I don't have NI MAX installed, I went to "uninstall" NI software and I see that DAQmx and XNET installed.  I am assuming that the python module is not installed which is causing my problem.  How can I force the installer to also install the Python module or will that have to be an auxiliary installation?

 

Thanks,

Matt

Attention new LV users, NI has transitioned from being able to purchase LV out right to a subscription based model. Just a warning because LV now has a yearly subscription associated with it.
0 Kudos
Message 1 of 15
(1,170 Views)

Below is an image of the included installers automatically selected from the installer.

 

Matt_AM_0-1683656103107.png

 

EDIT:  I also have installed Python 3.9 but haven't done any of the system pathing stuff from this article 

Attention new LV users, NI has transitioned from being able to purchase LV out right to a subscription based model. Just a warning because LV now has a yearly subscription associated with it.
0 Kudos
Message 2 of 15
(1,167 Views)

Additional Information, not sure if it matters.

 

I am using OO to design the code.  I found this video seeming to add some NI directories to his project then adds them to the executables for LV 2013.  It appears that the directories are OO related (Vi names are like Get LV Class X).  

 

When building the executable, I am telling it to include all my classes.  I am not including the three directories that the video added.  

 

Additionally, I do not have NI Max installed on the destination computer and I'm installing it now.  I'll update if that fixes my problem.  Hindsight says since I am using DAQmx, I would have to install NI MAX to create the tasks needed.  However, since I see DAQmx is installed on the destination computer, I am expecting I would get a runtime error stating the task isn't found compared to the 46308 need a full development LabVIEW error.

 

Matt

Attention new LV users, NI has transitioned from being able to purchase LV out right to a subscription based model. Just a warning because LV now has a yearly subscription associated with it.
0 Kudos
Message 3 of 15
(1,107 Views)

Installing MAX didn't help, still have the broken run arrow.

 

Additionally, I did install the exe on another machine with the full LV 2018 professional installed (code is written in 2022 Q3) and that machine could run the exe no problem.  

 

I figured this one was a long shot, but I copy and pasted the instr.lib VIs to the destination machine and that also didn't work.

 

I also ran VI Analyzer and removed all unused code that it found and searched all my disable structures to verify that all the code in my main VI didn't have loose wires everywhere.  Still no dice.  

 

Finally, I tried removing the type deffs and including them in the build, but still not working.

 

I'm going to try adding the directories from the YT video and rebuild.

 

Edit: Adding in the LVClass folder didn't work.  Still getting the same broken run arrow.

 

Matt

Attention new LV users, NI has transitioned from being able to purchase LV out right to a subscription based model. Just a warning because LV now has a yearly subscription associated with it.
0 Kudos
Message 4 of 15
(1,084 Views)

License question.  I was going through this page again to look over the deployment machine errors section.  The second bullet point to a link to check if things are licensed correctly which then led me to a page talking about specific addons that require licenses.

 

I was going through that second link and I see that there is a section under the "Deployment Licenses" titled "Same as Development".  That section states that the software in the list requires the same license necessary to develop an application on each target computer on which the application will run.   One of the product names is NI VISA, which I know is getting installed with my code due to my Power Supply Class which uses NI VISA to communicate to various power supplies.

 

My question is, so if I develop the code on my dev stand with license XXX, does my deployment PC also need license XXX?  It sounds like yes.  I have never really looked into licensing and am unsure how I can make sure that things are licensed correctly when deploying.  I am assuming licensing is LabVIEW specific and I think we are given 3 licenses per copy of LabVIEW.  If I am understanding everything correctly, I can only have 3 copies of LV installed on 3 machines (which I would have to be the owner of) and if I wanted to build an executable with NI VISA, then one of those license would have to be set for the deployment machines, correct?  

 

Matt

Attention new LV users, NI has transitioned from being able to purchase LV out right to a subscription based model. Just a warning because LV now has a yearly subscription associated with it.
0 Kudos
Message 5 of 15
(1,041 Views)

I was looking over my licenses stuff and I think I may be closer to figuring things out.  We were using LV 2018 for a while then recently upgraded to 2022 Q3.  I think my company bought the Professional copy of LV 2023 Q3 (image attached below as a third image).

Matt_AM_0-1683813230541.png

Matt_AM_1-1683813241370.png

Matt_AM_2-1683813485010.png

 

 

If I am reading my licensing correctly, if I want to actually build a deployable copy of my code that doesn't require a full copy of LabVIEW, I will need to build in 2018, correct?

 

Matt

Attention new LV users, NI has transitioned from being able to purchase LV out right to a subscription based model. Just a warning because LV now has a yearly subscription associated with it.
0 Kudos
Message 6 of 15
(1,029 Views)

You probably need either aditional installers that you didn't include or add the lvclasses as "Always Included" (under Source Files tab) in the exe file.

 

I have LV 2019 32-bit with Proffesional licence (and app builder) and i've never needed any licences installed on target computer, just runtime engine.

 

This is how my app builder looks like, i used report generation toolkit in this app:

AeroSoul_0-1683814305223.png

 

I build the exe file first, which i then add in the installer.

In the installer itself i have Labview, VISA and DAQmx runtimes, nothing else.

 

0 Kudos
Message 7 of 15
(1,022 Views)

@AeroSoul,

 

I have my classes set to "always included", see image below. Classes are classes that I made for this specific project while Common Classes are classes that I use everywhere (such as PS class).

Matt_AM_0-1683817033364.png

 

 Additionally, here are the installers that are being bundled with my installer, see image below.

Matt_AM_1-1683817359244.png

 

I have verified that the executable will run on a different PC with the full LV dev installed using the installer.  Note, the installer was "rebuilt" from the one I sent to the fresh PC, but that rebuild was to push the updated executable.  Nothing was added or removed from the installer.

 

Matt  

Attention new LV users, NI has transitioned from being able to purchase LV out right to a subscription based model. Just a warning because LV now has a yearly subscription associated with it.
0 Kudos
Message 8 of 15
(998 Views)

I made a VI that I am using to add in parts of my code that I think can cause issues.  I have verified that the read and python classes I made can run.  I then added in my PS class and created a simulation PS and that gave me the broke run arrow.  I am going to go through each PS child to try and tract down which gives me the fault.  

 

The PS parent class is abstract and just holds the method for the children to over ride.  The parent function has an async popup that lets the user know a method isn't being used by the child class.  Since things are typically set at the start of the test, I wanted to let the user know that the method isn't supported but I also wanted the code to continue to run, hence the popup.  I am thinking maybe the VI server "Path" could cause my issue with runtime.  

 

Matt_AM_0-1683832522622.png

 

Matt

Attention new LV users, NI has transitioned from being able to purchase LV out right to a subscription based model. Just a warning because LV now has a yearly subscription associated with it.
0 Kudos
Message 9 of 15
(982 Views)

I believe that it is my PS class that is causing the issue. 

 

Question about executables built with classes.  If I just include 1 method and 1 child class, such as a Sorenson DHP child calling the abstract parent's Write voltage (which then uses DD to turn into the DHP Write Voltage), what is all included in the executable?  

 

I am assuming that only the DHP class controls and DHP version of Write Voltage is included but am unsure if the parent's method is included or not.  My concern is that when adding the child class, all parent and child methods are included.  If this is the case, I'd have to remove all of the VI Server stuff and try rebuilding my code with all of them removed.

 

 

 

Also, found out that the DHP's Write Voltage vi had a breakpoint when entered (red around block diagram).  I removed that then ran Vi analyzer on all of the instrument VI's to verify no other ones had breakpoints which none did, I just got extremely lucky finding that breakpoint with randomly selecting a child class and method to drill down into.  

 

Matt

Attention new LV users, NI has transitioned from being able to purchase LV out right to a subscription based model. Just a warning because LV now has a yearly subscription associated with it.
0 Kudos
Message 10 of 15
(970 Views)