LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

.net constructor working in vi but not compiled executable


I'm using the Pyrocam Beamgage constructor. In the base vi, the .net calls are working fine, but after compiling the executable, don't work. Any thoughts on what I can try? Is there anything that needs to be done in the operating system. Does Labview have a way to explicitly state paths for .net contructors like the traditional vis have?

0 Kudos
Message 1 of 8
(3,648 Views)

Some additional details:

 

When I delete the file Spiricon.BeamGage.Automation.dll from the data subfolder, I'm prompted to manually select a dll file. When I select it from the following path the software works, however, it is not practical to release the software like this with the operator having to manually select the DLL every time. Is there a way to specify the path through a configuration file?

 

 

C:\Program Files\Spiricon\BeamGage Professional

0 Kudos
Message 2 of 8
(3,642 Views)

Suggest you include the dll in your Project and then when creating a Build Specification selct the dll as 'Always Included" in your Source files.

 

-AK2DM

~~~~~~~~~~~~~~~~~~~~~~~~~~
"It’s the questions that drive us.”
~~~~~~~~~~~~~~~~~~~~~~~~~~
0 Kudos
Message 3 of 8
(3,626 Views)

@Steve_Block wrote:

Some additional details:

 

When I delete the file Spiricon.BeamGage.Automation.dll from the data subfolder, I'm prompted to manually select a dll file. When I select it from the following path the software works, however, it is not practical to release the software like this with the operator having to manually select the DLL every time. Is there a way to specify the path through a configuration file?

 

 

C:\Program Files\Spiricon\BeamGage Professional


Fusion (.NETs assembly loader) will search your executable's sub-folders as well as other folders on disk to find the assemblies requested. If you include the dll in your project it will end up in a "data" sub-folder on disk will Fusion will find it. When you are using the dll in your development environment check what .NET assemblies are in memory in case you need to copy any additional dlls into your project (and will thus end up in your data folder). You can find the option under "View". It is possible that the dll you are using references other dlls and thus Fusion can't find them once you build an executable.

0 Kudos
Message 4 of 8
(3,606 Views)

Why can't labview just let the developer specify the path like traditional dlls(and I beleive CVI) lets you do.

0 Kudos
Message 5 of 8
(3,592 Views)

@Steve_Block wrote:

Why can't labview just let the developer specify the path like traditional dlls(and I beleive CVI) lets you do.


This doesn't seem like a constructive comment that gets you towards a solution. The last suggestion I have for you is to read this (found as first hit via google search):

 

http://digital.ni.com/public.nsf/allkb/C4EA5ABBEB67AF7C862573F3004D4421

0 Kudos
Message 6 of 8
(3,586 Views)

I placed the dll in my project and selected the include option and it was working for a while but then stopped. Why would it do this. How do I access the GAC?

0 Kudos
Message 7 of 8
(3,576 Views)

I hope I have the software working. I had to copy a whole bunch of dll files from C:\Program Files\Spiricon\BeamGage Professional to my executable's data file to make it work. I would believe the reason that labview does not let you programmatically select the path being because of the way microsoft designed the .net framework except if the main dll is left out, the operator then can manually select it from the path C:\Program Files\Spiricon\BeamGage Professional. I believe that CVI lets the programmer do this but would have to verify. Is there any way through one of the .ini, .config or etc files or any other mechanism that the path can be explicity set?

0 Kudos
Message 8 of 8
(3,563 Views)