01-28-2025 06:35 PM
I made a post on this in the Public Beta boards a few months ago related to LabVIEW 2024Q3 and this "preview feature", but didn't get any response:
https://forums.ni.com/t5/LabVIEW-Public-Beta-Program-in/NET-Core-Constructor-Issues/td-p/4414018
So, with the release LV 2025 Q1, I thought I'd give this another try and see how things were, and I still had quite a few issues, such that in it's current state, this appears to be unusable :(.
In my previous post, I used an example of Microsoft Garnet, which has a fairly complex dependency chain.
For this post, I'm going to work with Npgsql -- the postgresql API, which for .NET Core is pretty simple.
Previously I've leveraged the .NETStandard2.0 version of this in LabVIEW to great success.
However, as of version 8.0 (released 11/21/2023), they no longer support anything except for .NET Core.
My process here was to download the Npgsql .dll, and the corresponding dependency dlls manually from Nuget.
These are all placed in the same folder. I create a LV project in that same folder, and a VI to work with in that same folder.
Here were my issues/observations:
I think this is a pretty simple use case, and is a representative use case of how users would want to use this (or at least it's one of the simplest use cases that I have, beyond using a single-call to a built in function.
I've attached the project here.
While normally I'd say you probably need an instance of PostgreSQL (with a populated table to test against), in this case, the code crashes while trying to make the connection, so you don't ACTUALLY need a postgreSQL instance to see everything that I've talked about in this post.
I've attached a second .zip file which has the "latest" dependencies, and exhibits the behavior of linking to the wrong .NET dll (this is labeled "LatestDependencies").
This could absolutely be a "me" problem... but if so, I'd love to know what I'm doing wrong here :).
I could also be observing a mixture of missing features/bugs, but it would be nice to know what above is a limitation vs a bug.
I'm happy to work with someone to figure this out... enabling .NET core to access various APIs is a pretty high-priority for me for some things I'm interested in.
Thanks!
01-30-2025 10:13 AM
Any input on this from NI support teams? Considering using .NET Core for an upcoming project and wondering what the status is of this?
01-31-2025 03:14 PM
I apologize for the issues that you've run into when using .NET 8 and LabVIEW. Thank you for the detailed description of the issues and the code that you've provided. The development team is investigating why LabVIEW is failing to load the dependencies properly in this case.
I've filed Bug 3008437 for this issue.
01-31-2025 03:30 PM
Thanks Christina for letting me know that it's being looked into!
I'm very excited to start leveraging this, so I'm happy to help in anyway I can. Feel free to reach out directly via PM if you need additional information. 🙂
My previous post (in the beta forums) had a more complex library I was working with (Microsoft Garnet), and I have a few other use cases I'm interested in testing as well!
05-23-2025 03:00 PM
Please forgive my ignorance if this is way off base but is this a case where a .config file (outlined in the links below) will solve the problem?
https://www.ni.com/docs/en-US/bundle/labview/page/configuring-a-net-client-application.html
05-23-2025 03:27 PM
The config file referenced in those articles applies to .NET framework (or specifically for use with .NET Standard). I used those regularly with those dlls to good success (and I think I referenced that either in this post, or in the one I made in the old beta forum)
This question is with regards to the new .NET Core functionality, which does not use those files (as far as I know). I confirmed with NI that what I'm observing is indeed a bug. It was partially fixed in the new 2025 Q3 Beta, but there are still some outstanding issues.
My understanding is that .NET core should be explicitly preferentially checking for libraries in the project/exe folder(s)... and it wasn't doing that.
That all said, I'm also not an expert here 🙂