Background
During the package build process, sometimes Error 1357 can occur (as shown below).
This error typically happens when there are two VIs in the project that have the same filename, but are members of different LVLIBs or LVCLASSes. When VIPM builds the package, if both of these VIs are targeting the same destination location, then it can cause a collision (where the package builder tries to put them into the same folder, which is not possible if the two files have the same filename).
Workaround
The basic strategy for working around this issue is to ensure that the built package VIs have a folder structure that causes the VIs with the same names to be put into different folders. There are some different ways to achieve this:
1) Move Dependency Package VIs into our VI Package Project's Source Folder
Note: This only applies to cases where the VIs causing the collision are VIs installed by a different package and we are building them into our package (because the package was removed from the "Package Dependencies" list, so VI Package Builder is going to build them into our package). In this case, we have a couple choices:
1.A.) Leave the package as an external dependency (add it back to the list of Package Dependencies), so that it does not get built into our package and the name collision does not occur during the build process.
1.B.) Copy the dependency package's VIs into our project source code folder so that we are not dependent on the package, and we can use one of the options below (to segregate the classes into separate folders).
2) Set Destination Type to "Directory (Preserving Hierarchy)"
This setting will cause the built package to have a directory structure that is the same as the structure in the package source folder. If you choose "Directory" (or LLB) then all of the files will be put into a single directory and this may cause a file name collision (Error 1357)
3) Create a Custom Destination for each LVCLASS or LVLIB
A similar, but slightly different, strategy (if you're not using the "Directory (Preserving Hierarchy)" setting above) is to create a Destination for each LVCLASS or LVLIB that contains a VI with the same name as another class, to ensure that there is not a VI file collision.
You can do this by clicking on the "Add Destination" button.
Give the new destination a name that's the same (or similar to) your LVCLASS or LVLIB.
Then, in the Source File Settings tab, select the folder containing your LVCLASS or LVLIB, unselect the option to "Use Destination of Parent Folder" (since we're going to customize the destination), and then select the new destination you just created.
You'll do this step for each LVCLASS or LVLIB that might you want in a separate folder.
Comments
0 comments
Article is closed for comments.