LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Problems calling a .dll with the .net constructor node from a vi within an llb

LabVIEW is not concerned at all about loading assmblies, that does Windows for LabVIEW. LabVIEW only adds the project directory to the known locations of assmblies when telling Windows to load an assembly but all the loading is done by Windows.

 

As to installing a .Net assembly (and all it's dependencies) properly there should be an installer. The installer will check if the assembly is already installed and what version and install it if necessary using Windows install services. This installer should be created by the developer of the assembly as only that entity knows about all the possible dependencies and required versions of them.

Rolf Kalbermatter
My Blog
0 Kudos
Message 11 of 15
(1,481 Views)

Ok,

 

Nearly there (I think) - Thanks for your patience!

 

So, in theory then I don't have to make sure my VIs which call the assembly point to the right place on the disk, only to the correctly named dll in the list? 

 

When I drag and drop the dlls into the GAC, (as I just did to try), do they physically move on disk or is the GAC just a list which points the dll wherever I dragged it from? i.e. once they've been dragged into the GAC can I delete the original files or would that brake everything?!

 

I will have another look on the manufacturers disk to see if they have an installer which puts things into the GAC or not - I don't believe they do since I ran the installer on the disk to install their software and get acces to the dlls in the first place. I would have thought that that installer would have been the thing that "registered" the dlls in which case I didn't ought to have had this problem...

 

Thanks again for all your help

 

Paul

0 Kudos
Message 12 of 15
(1,474 Views)

Has anybody got a step by step solution to this. We are having the exact same problem. The Aerotech ensemble works perfectly within the project environment but when I compile to an executable it fails at exactly the same point as Paul (the poster) mentioned. All required DLLs appear to be in the Data folder of the executable.

 

What was the solution to this - did you find one Paul?

0 Kudos
Message 13 of 15
(1,289 Views)

How LabVIEW Locates .NET Assemblies
http://digital.ni.com/public.nsf/allkb/C4EA5ABBEB67AF7C862573F3004D4421?OpenDocument


I end up putting in my application root directory.
Example:
C:\My App\My net App.exe
C:\My App\My net Assembly.dll

 

Hope it helps!

-lvABC

0 Kudos
Message 14 of 15
(1,276 Views)

I had exactly the same problem. I couldn't believe it when on the second post I saw the same code I was working on, from the Aerotech Connect.vi

The solution is:

The trick was to put all 7 dll’s into the installation folder manually. Two of them are 64 bit, and they are most likely not needed. The application builder includes the two main ones in the Data folder, but by copying

AeroBasic.dll

AeroBasic64.dll

Aerotech.Common.dll

Aerotech.Ensemble.dll

Aerotech.Ensemble.LabVIEW.dll

EnsembleCore.dll

EnsembleCore64.dll

directly into the installation folder, it works. Nothing gets checked in the “Advanced” section of the application properties in the project, and the application works.

 

0 Kudos
Message 15 of 15
(856 Views)