When a VI depends on other files, the top-level VI saves paths to its subVIs. This capability allows LabVIEW to load all subVIs when it loads the top-level VI.
If LabVIEW cannot find a subVI, it searches other locations on disk to find the file. Cross-linking occurs when LabVIEW locates an incorrect subVI with the same filename.
Consider the following suggestions to avoid loading incorrect dependencies:
Place all of your VIs in a project, and use the Project Explorer window to move files on disk. When you move an individual subVI, LabVIEW modifies the VI that depends on that subVI and saves the changes.
When you move a subVI on disk and your files are not in the Project Explorer window, make sure you move the directory that contains all of the VIs involved in your application so that the relative path to the files remains the same. However, you do not need to move the subVIs that link to top-level VIs if you reference a subVI in a directory that installs with LabVIEW, such as vi.lib, instr.lib, and user.lib.
If you have two VIs with the same filename, use project libraries to qualify the names of the VIs so that the name of the project library becomes part of the filename. If your application refers to two VIs with the same name, LabVIEW might load the incorrect VI or try to load both VIs. If LabVIEW tries to load two files with the same filename, the Conflict Resolution dialog box appears with a list of conflicts.