LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW 2024 build exe for older version

Solved!
Go to solution

I am just having a look at LabVIEW 2024 and its ability to save files for a previous version.

 

Does anyone know if it also allows you compile an exe to run on a previous version of the runtime?

 

By the looks of what is listed in the additional installers it can't. (I have got a project which is set to be save in 2023, but the installer is listing the 2024 runtime).

 

This suggests that in order to compile a project you will still need the target version of LabVIEW installed.

0 Kudos
Message 1 of 8
(186 Views)

@Worle wrote:

I am just having a look at LabVIEW 2024 and its ability to save files for a previous version.

 

Does anyone know if it also allows you compile an exe to run on a previous version of the runtime?

 

By the looks of what is listed in the additional installers it can't. (I have got a project which is set to be save in 2023, but the installer is listing the 2024 runtime).

 

This suggests that in order to compile a project you will still need the target version of LabVIEW installed.


Your question is not clear. If you compile the code to an exe, shared library, or packed library, it is in whatever version your LabVIEW version was that you used to build that binary file.

 

If you set the "keep source in previous version" to a previous version, the VI source code will be kept in that version and you can transfer the VIs to a different computer and open them in that version or a newer one! (With the exception of some bugs in some corner cases that still need to be ironed out. Make sure to use LabVIEW 2024Q3Patch2, it fixes several bugs about "keep source in previous version").

Rolf Kalbermatter
My Blog
0 Kudos
Message 2 of 8
(181 Views)

To attempt to clarify.

 

My question was:

'Can I use LabVIEW 2024 to compile an exe (or other build spec) so that it can run on a target with an older runtime version (2019 for example)?'

 

I think you have answered my question, the answer being no. I am not massively surprised, I just wanted to check

0 Kudos
Message 3 of 8
(121 Views)
Solution
Accepted by topic author Worle

You can make executables run under newer versions of the runtime library so you don't have to find an old runtime library years from now. 

 

But you can't make a new executable run under an older runtime library. Probably because newer versions could have functions that are not supported in older runtime versions.

========================
=== Engineer Ambiguously ===
========================
0 Kudos
Message 4 of 8
(115 Views)

@Worle wrote:

To attempt to clarify.

 

My question was:

'Can I use LabVIEW 2024 to compile an exe (or other build spec) so that it can run on a target with an older runtime version (2019 for example)?'

 

I think you have answered my question, the answer being no. I am not massively surprised, I just wanted to check


You might think that your idea would be a natural enhancement path for the new keep source in previous version but, since the RTE is free and multiple versions install side by side cleanly, I would not expect NI to ever deliver a "Build for Previous Version" feature. UNLESS, a significant number of users demand such a feature!

 

If, previous or multiple RTE support is needed do the build on a machine with the lowest supported version and enable "Allow future RTE Support."  That's not a showstopper workflow! And is going to be much less fragile than any revamp of the app builder.   I couldn't even spitball the man-months of effort needed to generate test cases for an app builder that might support this feature.....every spec type in every supported previous version with edge cases and warnings for each feature that cannot back save at each RTE target (and patch by patch for known issues)  the AB itself would have to bloat by a high percentage.    I personally think NI R&D would think long and hard before committing to this feature and only go there if the incidental AB stability would be vastly improved. 


"Should be" isn't "Is" -Jay
0 Kudos
Message 5 of 8
(89 Views)

Actually you don’t need to suspect conspiracies or ulterior motives. There is a very technical reason that this would be pretty much impossible to implement!

 

While it is quite a lot of work but doable to try to keep APIs backwards compatible so that an older application will see the same interface when loading with a newer runtime, the opposite is at least a magnitude more difficult. The application would need to include an ever increasing mapper component that tries to map newer API calls to the older ones in the old runtime to be able to run on the old runtime. And that mapper component soon will get similar in size as the old runtime itself as it needs to implement everything the old runtime doesn’t know about. And that all needs to be done conditionally for every supported backwards runtime.

Adding a new feature to LabVIEW would suddenly require an even bigger effort and one that is difficult to oversee, exponentially growing with every older version you want to support and basically end up requiring a runtime_mapping runtime installer.

Worse even, most new features would be impossible to implement! Yes you read that right! They often need access to internal facilities in a runtime that are not exported in any way and shouldn’t be exported ever. The mapper component would be unable to seamlessly implement that feature with the exported functionality in older runtimes. Result: sorry guys this feature can’t be supported with the “compatible to older runtime” requirement. You either abandon that requirement or we can’t add that feature. So long and thanks for all the fish!


Net effect: A lot more effort, much more potential for bugs and difficult to test for compatibility issues, less new features implemented and still an additional runtime like component to install!

 

Sounds to me like “All pain and no gain” except the bragging right to have done something silly and to have created another money dumping hole.

I rather would use that money to send the developers for a few days a year to a resort to have fun and return home to create new exciting features, instead of this! 🎉🍹

Rolf Kalbermatter
My Blog
0 Kudos
Message 6 of 8
(73 Views)

Thanks for all of the insight.

 

I am not massively surprised that it isn't a feature, it was just the first thing I tried to do

0 Kudos
Message 7 of 8
(60 Views)

@Worle wrote:

Thanks for all of the insight.

 

I am not massively surprised that it isn't a feature, it was just the first thing I tried to do


Why?  That, as explained above, was a silly thing.  Sell off any firearms you own...quickly, before you get other bad ideas 😀


"Should be" isn't "Is" -Jay
0 Kudos
Message 8 of 8
(32 Views)