Showing results for 
Show  only  | Search instead for 
Did you mean: 
Level 5

Path limit error when try to include merge module

I'm getting the path limit error when try to include merge module, i.e. exact error is
"The file path is longer than the limit set by the operating system. Change the build location of the current release to a shorter path to resolve this issue."
If i change the .ism file location then I'm able to create installer. I took a look into documentation for Error -6267, and it advises to change file location.
This solution is not really suits me as we use "long paths" in our continuous integration automated build system.
Could you please advise how this issue can be solved?

Thank you in advance.

Best regards, Georgiy
Labels (1)
0 Kudos
2 Replies
Level 16

I once worked at a company that did 100,000 build a year with typically around 1000 merge modules being consumed into an installer.

Here's some tips:

1. We had a prebuild step that picked an available drive letter and did a subst command for the directory that had the ISM. Therefore D:\.....\Sources\Foo.ism became E:\Foo.ism

2. Another approach (the one mentioned in the error ) is to change the ISM to build to E:\ISBuild and have a prebuild step that cleans the contents of E:\ISBuild. This is done in the release configuration settings, not by moving the ISM itself.

3. Other gotchas. InstallShield allows you to associate a merge module to a directory. But if your module has a dependency on another module, there's not way to do this. So we had another build step that was invoked by the precompression event to do SQL updates against the built MSI to fix the directory table entries.

4. InstallShield also fails to properly merge the contents of properties such as SecureCustomProperties and MsiHiddenProperties. If the merge module contains these it'll blast the property in the built MSI and you'll have various validation and runtime problems. So therefore we had another build event that examined the various sources and fixed it back up.

5. InstallShield would sometimes run for 30-45 minutes before reporting a merge module was missing. Therefore we had a prebuild step that performed a quick flight check to make sure everything was present before starting the build.

This all sounds complicated ( and it is ) but once in place works well. I actually do like the use of Merge Modules with installers. I typically use InstallShield Basic MSI coupled with WiX merge modules.
0 Kudos
Level 5

Thank you for your response! I will study your proposals, but I know that we cannot substitute hard drive as we do not have such flexibility in our build system.
Now I managed to resolve this problem by changing .ISM file name to shorter one. Luckily I exceeded path length a little 🙂

Cheers, Georgiy
0 Kudos