LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Project dependency with no caller

I have a project that has two files under the dependency tab that are listed as deleted, renamed or moved.  Right-clicking to see callers yields "No items were found".  These missing files are not causing anything in the project to be broke.  So now when I go to build a source distro, it fails because these files are missing, even though there are no callers in the project.  I went thru the "CTRL-SHIFT Run to recompile as the error message suggests

 

I think that the problem might be I am including files from lvlibs that may have other members which I am not using that need this file.  I tried changing the source distro settings to "remove unused lib files", but that didn't help.  Just for grins, I created a dummy file with the correct name at the expected path.  This caused the "deleted, renamed..." message to go away, but the source distro build still failed for the missing file

 

Whats the way forward here?

 

TIA,

Bill F

0 Kudos
Message 1 of 6
(3,709 Views)

Bill,

 

what type of files are those dependencies?

From your second paragraph, i would think that the files are part of a lvlib. Is that true? Did you update the lvlib properly to remove those files?

 

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 2 of 6
(3,688 Views)

Norbert,

 

The file are vi's that are not part of a lvlib.  They existed at one time, but were deleted for one reason or another.

 

What I was thinking is that there are lvilbs that have vis which I am using, but contain other vis which I am not using, and one or more of these vis in the lvlib which I am not using require these missing files.  I hope this is making sense.  The larger point is that nothing in the TPS code is broken, so these files should not really be dependencies

 

Bill F

0 Kudos
Message 3 of 6
(3,672 Views)

Bill,

 

an lvlib is a file containing information about components which are bound to the lvlib. So loading the lvlib in the development system will look for all components of this lvlib and their dependencies. So your description makes sense.

 

So i suggest you to either

a) remove the unneeded components from the lvlib or

b) change the unneeded components not to depend on those two vis or

c) create vis with the appropriate names in the appropriate folders without any functionality (stub VIs)

 

hope this helps,

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 4 of 6
(3,668 Views)

Norbert,

 

Yes, well that all makes sense, except that I have no idea which componenets in the lvlib are causing the problem.  For instance, there are several lvlibs that have 20-40 vis each, of which only 5-10 are being used in the project.  Is my only solution then to open up each file in the lvlib in turn to try to find one that has a missing subvi?

 

If that is the answer, then it is a poor one.  This would be something NI should fix:  I can't create a source distro because there is a file broken that would not even be included in the source distro, and LV is not smart enough to tell which file it is.  Then to top it off, telling LV not to include unused lvib files in the distro does not help.

 

Thanks for your help,

Bill F

0 Kudos
Message 5 of 6
(3,659 Views)

Bill,

 

i have to clearify the process of building a source distribution/application using application builder:

The application builder has to browse the sources you are using in your Main (so the hierarchy) before/during the build process. So if you do not include ALL VIs you need manually to your project, then the automatic process has to dig for dependencies on it's own.

Since you are using components from an lvlib, the lvlib-file is loaded and all components are looked for. This is done before the application builder decides if the source should be included or not. So if a component could not be found, it is an error for certain.

 

I do concur that this is maybe not the best approach, but to be honest, i don't know a real better approach. You have to keep in mind that using lvlibs to organize your code base and then "simply deleting random functions used in the code base" will always lead to issues. Always.

 

So the simpliest solution for you will be option c) from my previous post: Create empty VIs as stub VIs to have the components back in your hierarchy. Since the components are removed later on (so you say) it does not matter if there is any functionality in them. The only bad thing about this is that you have to know the parameters (connector block) of those VIs.

 

hope this helps,

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
Message 6 of 6
(3,642 Views)