From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

teststand deployment build fails with dll dependency

Hi guys,

     I am struggling with test stand deployment  for 3 days. hope somebody can help.  ( I am using teststand 4.0 nd labview 8.5 and .net 2.0)

 

     I have sequence files, with many subVi' s and .net assmeblies with dependancies, added to  workspace , and when i run the sequence file, it works fine. 

  Specifically,  the sequence file  calls many Vi's, some of which use the .net assembly  from "C:\program files\National instruments\labview 8.5\use.lib" ( and not specifically from the folder where the Vi resides), and still it works.

   However, when i build ths same using deployment utility (figure 1),  these assemblies and other go to    "\\installation directory\data"  and  the build fails(figure 2), as  the  "property node  " for the .net assembly( build using  c# public static class) gets invalid( figure 3).

 

 

 

 

 

Figure 2:

 

 

figure3.jpg

 

 

Figure3:

 

Now,   the same VI  in  different  folder ( C:\development...) is able to reference the assembly from   "C:\program files\National instruments\labview 8.5\use.lib"( I had added the refernce from labview project initially from different location, but after copying the file to this location, VI's still worked)  and works fine (figure 4).

 

 

figure4.jpg

                                          Figure 4:

I have tried adding   "\\installation directory\data"   Teststand search directory, but no luck.

 

I have following questions:

 

  1. is it manadatory to keep the dl's and their dependencies in the same folder, in which VI's use them, for sucessful build  through deployment ? if yes, by default, these would go to "\\installation directory\data", which is different from "installation directory\...VI directory\   , and would not work still?
  2. it is mandatory to add the VI's that use .net assemblies to labview project, for sucessful deployment?  if yes, how do we add a  labview project to testsand workspace?
  3. If the assembly can be added to Global assembly cache, would this solve the problem of 'unsucessfull build" of installer , and even if it does, how can (a) I add the assembly to GAC on development system  (b) make sure that installer installs the assembly to GAC on deployed system (through deployment utility)?

other than above, does anybody have other  solution to  my problem?

 

I am already late for deployment of project to customers, and need immediate help.

 

 

Thanks

 

vivu

0 Kudos
Message 1 of 4
(4,928 Views)

I have 

I have attached the c#  snippets for reference too.

figure5.jpg

0 Kudos
Message 2 of 4
(4,886 Views)

vivu,

 

Who created the .net assembly?  Was it built in LabVIEW or user created?  On your deployment machine you will have to have the .net assembly in the same location (i.e. c:\prog fil\nat inst\labview 8.5\user.lib).  You should include the .net assembly in the deployment and you can specify the install destination to be the correct place.  The vi's that use the .net assemblies should be included automatically and detected by the deployment analyzer.

 

There are a couple of screenshots that are missing in your original post.  Can you post one of your deployment utility of the distributed files tab?  Also, when does your error occur on deployment?  After installation when you run the vi?

------------------------------------------------------------------------------------------

Jon F.
Technical Support Engineer
National Instruments
0 Kudos
Message 3 of 4
(4,865 Views)

Hi Jon.

 

Thanks for replying.  The .net assembly was created  in visual studio, by different engineer.  I tried  using  'c:\prog fil\nat inst\labview 8.5\user.lib' as the source path, and  keeping  destination to   (1)  \\target\data  (2) \\target\subVI location that uses this  assembly  (3) \\lNI directory\\labview8.5\user.lib.

 

all of thse did not help.  

Anyways, I asked my colleague to change the .net assembly, so that one of the VI that was using property node, now, just uses 'invoke node" ( and source dll was changed by using c# method instead of property to achive same result)n and then, I rebuild the deployment choosing source and deployment paths as above. none of them worked, except when i choose deployment to be  "\\target\subVI" location that uses this  assembly .

 

So, this works and I was satisfied.  However, after deploying, I run into strange problem.

 

( pleas note that I just created 1 seqeunce file out of 5, that are part of the worskpace,rest everything was done by a guy 8 years back, and although I am well versed with labview, teststand is new to me).

 

 When I run the test on bhild machine, before any of the sequence file executes, a dialog box opens as below:

fig1.jpg

 

Once thse values get populated, then steps in the chosen sequence file execute.  I found that this  is done by a VI  , that might be called by some of the sequence file or by some Testsand directory( which I don't know , as I did not create it). Vi is shown  below:

 

fig3.jpg

 

However, when i deploy the test, on the deployment machine, as I run the test,  it does not complain about any missing .dll or broken VI's, but the dialog box disappears, just does not come up.

As you can see, the only thing i changed from previous deployment was adding following files in deployment : zoundshearingnet.dll and commifnet.dll for the .net deployment, and I do not beleive this should change the VI/VI call that loads the dialog box at the start.

 

fig4.jpg

 

I am also exporting  the station globals and testexec.ini files as below:

 

fig6.jpg

 

however, I do get warning in deployment:

fig2.jpg

 

So, I have the following questions:

1) does this warning have anything to do with the missing dialog box?

2) as I understand, the VI that  flashes the dialog box at the start, use "sequence context" and then "start modal dialog".  I tried running the test on build machine, and pasue it, and then, run this VI. it fails on "start model dialog", but that could be because perhaps I am not supoposed to run ot this way? is there a way I could debug this Vi with teststand?

3) Can i know, how is this VI called by testand and who calls it? If i start opening each sequence file, which have hundeders of VI's and subVI's, it will take me hours to do that. 

4) so, basically, the problem is that  when a sequence is run, a VI interacts with the sequenec and opens a dialog, which after deployment . fails to do so. are there any such examples that i could refer to, to help me understand how this works?

 

Thanks

vivu

 

0 Kudos
Message 4 of 4
(4,845 Views)