cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Darain
Level 6

standalone build has errors on including MS merge modules

I have an InstallScript MSI project including MS runtime VC9.0 merge modules of MFC and CRT. It builds fine with the InstallShield 2008 IDE. But when I tried it with standalone build on the same machine, it issues the following errors:


C:\>"C:\Program Files\Macrovision\IS 2008 StandaloneBuild\IsSABld.exe" -p "C:\Pr
ojects\IS2008\Packages\MyApp\MyApp.ism" -a WebRelease -r SetupExe -c COMP -o "C:
\Program Files\Common Files\Merge Modules"
InstallShield (R)
Release Builder
Copyright 1997-2006 Macrovision Europe Ltd.
and/or Macrovision Corporation.
All Rights Reserved.

Build started at Oct 23 2008 11:07 AM
Building Release: SetupExe
...
Compiling...
Setup.Rul
...
FeatureComponents table successfully built
Component table successfully built
Loading File table
Building File table
Merging modules...
Merging Visual C++ 9.0 CRT (x86) WinSXS MSM: C:\Program Files\Common Files\Merge
Modules\Microsoft_VC90_CRT_x86.msm
Merging Visual C++ 9.0 MFC (x86) WinSXS MSM: C:\Program Files\Common Files\Merge
Modules\Microsoft_VC90_MFC_x86.msm
Merging Visual C++ 9.0 CRT (x86) WinSXS MSM: C:\Program Files\Common Files\Merge
Modules\policy_9_0_Microsoft_VC90_CRT_x86.msm
ISDEV : error -6267: An error occurred while extracting files from the cab file
C:\Projects\MyApp\IS2008\Packages\MyApp\WebRelease\Inter
m\MergeModules\policy_9_0_Microsoft_VC90_CRT_x86.52105B6B_A3EF_3A90_882A_947B287
C203A\MM.Cab to the location C:\Projects\MyApp\IS2008\Packages\MyApp\WebRelease\
Interm\MergeModules\policy_9_0_Microsoft_VC90_CRT_x86.52105B6B_A3EF_3A90_882A_94
7B287C203A
Merging Visual C++ 9.0 MFC (x86) WinSXS MSM: C:\Program Files\Common Files\Merge
Modules\policy_9_0_Microsoft_VC90_MFC_x86.msm
ISDEV : error -6267: An error occurred while extracting files from the cab file
C:\Projects\Build_Branch\IS2008\Packages\MyApp\WebRelease\Inter
m\MergeModules\policy_9_0_Microsoft_VC90_MFC_x86.7F9A85ED_D023_3818_B6DC_A687410
206B5\MM.Cab to the location C:\Projects\MyApp\IS2008\Packages\MyApp\WebRelease\
Interm\MergeModules\policy_9_0_Microsoft_VC90_MFC_x86.7F9A85ED_D023_3818_B6DC_A6
87410206B5
File table successfully built
Building MsiFileHash table
MsiFileHash table successfully built
Class table successfully built
...
_Validation table successfully built
Searching project for extract-at-build components...
Validating Custom Action sequencing
Embedding manifest SetupExe.Highest.manifest into setup.exe
Generating RC file: _ISUser1033.rc
Building dialog 15101
Building dialog 15102
Built 2 dialogs into resource file: _ISUser1033.rc
Building RES file: _ISUser1033.res
Compiling resource DLL: _isuser1033.dll
Resolving strings...
Language English (United States) built
Embedding manifest SetupExe.Highest.manifest into setup.exe
Started signing 8.tmp ...
Successfully signed and timestamped: 8.tmp
Building CAB files...
ISDEV : error -1501: Could not compress "C:\Projects\MyApp\IS2008\Package
s\MyApp\WebRelease\Interm\MergeModules\policy_9_0_Microsoft_VC9
0_CRT_x86.52105B6B_A3EF_3A90_882A_947B287C203A\ul_policy.21022.08.policy_9_0_Mic
rosoft_VC90_CRT_x86.RTM.52105B6B_A3EF_3A90_882A_947B287C203A" into "C:\Projects\
MyApp\IS2008\Packages\MyApp\WebRelease\SetupExe\DiskImages\DISK1\Data1.cab"
ISDEV : error -1501: Could not compress "C:\Projects\MyApp\IS2008\Package
s\MyApp\WebRelease\Interm\MergeModules\policy_9_0_Microsoft_VC9
0_CRT_x86.52105B6B_A3EF_3A90_882A_947B287C203A\ul_catalog.21022.08.policy_9_0_Mi
crosoft_VC90_CRT_x86.RTM.52105B6B_A3EF_3A90_882A_947B287C203A" into "C:\Projects
\MyApp\IS2008\Packages\MyApp\WebRelease\SetupExe\DiskImages\DISK1\Data1.cab"
ISDEV : error -1501: Could not compress "C:\Projects\MyApp\IS2008\Package
s\MyApp\WebRelease\Interm\MergeModules\policy_9_0_Microsoft_VC9
0_MFC_x86.7F9A85ED_D023_3818_B6DC_A687410206B5\ul_policy.21022.08.policy_9_0_Mic
rosoft_VC90_MFC_x86.RTM.7F9A85ED_D023_3818_B6DC_A687410206B5" into "C:\Projects\
MyApp\IS2008\Packages\MyApp\WebRelease\SetupExe\DiskImages\DISK1\Data1.cab"
ISDEV : error -1501: Could not compress "C:\Projects\MyApp\IS2008\Package
s\MyApp\WebRelease\Interm\MergeModules\policy_9_0_Microsoft_VC9
0_MFC_x86.7F9A85ED_D023_3818_B6DC_A687410206B5\ul_catalog.21022.08.policy_9_0_Mi
crosoft_VC90_MFC_x86.RTM.7F9A85ED_D023_3818_B6DC_A687410206B5" into "C:\Projects
\MyApp\IS2008\Packages\MyApp\WebRelease\SetupExe\DiskIma
ges\DISK1\Data1.cab"
Data1.cab built
Files built
ISDEV : warning -6487: If you intend to distribute this upgrade as a patch, you
should author the 'Patch Optimization' setting on the Advanced Settings panel of
the Release Wizard.
Media table successfully built
ISDEV : error -6103: Could not find file "C:\Projects\MyApp\IS2008\Packag
es\MyApp\WebRelease\Interm\MergeModules\policy_9_0_Microsoft_VC
90_CRT_x86.52105B6B_A3EF_3A90_882A_947B287C203A\ul_catalog.21022.08.policy_9_0_M
icrosoft_VC90_CRT_x86.RTM.52105B6B_A3EF_3A90_882A_947B287C203A"
ISDEV : error -6103: Could not find file "C:\Projects\MyApp\IS2008\Packag
es\MyApp\WebRelease\Interm\MergeModules\policy_9_0_Microsoft_VC
90_MFC_x86.7F9A85ED_D023_3818_B6DC_A687410206B5\ul_catalog.21022.08.policy_9_0_M
icrosoft_VC90_MFC_x86.RTM.7F9A85ED_D023_3818_B6DC_A687410206B5"
Started signing certificate.msi ...
Successfully signed and timestamped: certificate.msi
...
Successfully signed and timestamped: setup.exe
Automatic update notification disabled
WebRelease\SetupExe - 8 error(s), 2 warning(s)


There must be something missing in my Standalone configuration. Can someone tell me what I have missed?

Many thanks.
Labels (1)
0 Kudos
(17) Replies
esiemiat
Level 9

Are you including the -o option in the command line? Take a look at the help topic "Building a release at the command line" the more information.
0 Kudos
Darain
Level 6

It is included in the command, as shown on the first line of the code.
0 Kudos
Darain
Level 6

Oh my gosh! This is a nasty bug. I searched in the forum archive and found a few similar errors in the past and they were never solved.

My various tests in these two days at last converge to the point that this could be a problem of path length limitation again. So I increment the length of my IS project folder name binarily and located the path length limit. When I use the path C:\Temp\IS2008\Packages\MyApplication_Branch1234567890123456789, the project build produced the following error:

ISDEV : error -6267: An error occurred while extracting files from the cab file
C:\Temp\IS2008\Packages\MyApplication_Branch1234567890123456789\WebRelease\Interm\MergeModules\policy_9_0_Microsoft_VC90_CRT_x86.52105B6B_A3EF_3A90_882A_947B287C203A\MM.Cab
to the location
C:\Temp\IS2008\Packages\MyApplication_Branch1234567890123456789\WebRelease\Interm\MergeModules\policy_9_0_Microsoft_VC90_CRT_x86.52105B6B_A3EF_3A90_882A_947B287C203A

After I removed the last '9' from my project directory so it became C:\Temp\IS2008\Packages\MyApplication_Branch123456789012345678, and the project build successfully!

So the path length limit of that merge module is 172. Higher than that, InstallShield Standalone build cannot handle it. Interesting enough, the InstallShield IDE can build successfully with path length outside this limit when Standalone build fails. Hence, I think this is an InstallShield bug rather than Windows Installer bug.

I hope someone will be fixing this soon as the Microsoft merge module names are getting longer and longer and we don't have control over those.
0 Kudos
LeviJA
Level 3

I too have been having problems of this sort with MSM modules and InstallShield 2011. I would like to know if there is a solution or workaround. OFTEN, when I try to build from command line, or from IDE, the build will fail in one way or another with an MSM file error, cannot merge, etc... YET, if I just try to build again, the same build will often succeed, or fail in a different way on a different merge module. All seem to be related to VS 9.0 MSM files, as the VS 8.0 and VS 10.0 MSM files never seem to exhibit this behavior. My build includes 8.0, 9.0 and 10.0 MSMs due to various modules built with each version of the compiler.

Any ideas why the intermittent behavior?
0 Kudos
Superfreak3
Level 11

Thanks for this post. I was pulling my hair out trying to figure out what was wrong with finding/compressing some merge modules in my project.

This is a bug that has to be fixed!

I have 2010, but I see it hasn't been fixed in 2011!
0 Kudos
Kelter
Level 10

yeah, this is terrible. i was fighting with it for a while, too. the worst thing is that it uses the module GUID twice in the path. take the name of the component, and the file, and the path to the project and subtract all that from 172, and that's right, ladies and gentlemen, in a POS released in 2011 you still have to worry about path length issues. terrible.

there's a few merge modules that we build, and i removed the "publish" option from the release configuration settings (since we were passing the merge modules path on the command line which builds the installer, there's no reason to be publishing the merge modules) and that is when we started getting the issue that you posted about.

what's really strange is the reason we removed that option in the first place. one of our merge modules kept getting copied into the IS SAB installation directory when it was being published...just one of them, though. weird inconsistency, right? so when i stopped publishing it, everything was fine. when i stopped publishing the other merge modules, i got the "unable to compress..." issue.
0 Kudos
Superfreak3
Level 11

IS support tells me that it is a Windows limitation and not their applicaiton.
0 Kudos
Kelter
Level 10

IS support says alot of things....like "why don't you just give up and pay for one of our consultants..."

i don't think the inconsistencies between the SABuild and the IDE build are MS's fault, and i'm not exactly one to jump to the defense of MS.
0 Kudos
Superfreak3
Level 11

Oh, I didn't say I bought the explanation. I totally agree with you.
0 Kudos
Kelter
Level 10

LOL! 😉
Glad you cleared that up!
0 Kudos
Kelter
Level 10

Can we get some attention from IS on this? i tried workaround #3 from ERRDOC: Build Error 1501, and iscmdbld.exe doesn't do anything at all. just returns without doing anything or reporting any errors. This sounds like a critical IS bug.

Can you create a hotfix, or post a whitepaper on avoiding this issue, or something? Maybe iscmdbld should take a parameter containing a path to a short-named temp directory, or it should use 8.3 paths to work around path length issues, or something?

This kind of buggy stuff makes me want to use wix.
0 Kudos
Christopher_Pai
Level 16

It's been known for years that MSFT has messed up alot of their merge modules and that third party merge modules in general are a failed idea. Move one.

Take a look at the C++ Redist Setup Prerequisites. It's a much better way to get your applications dependencies deployed.
0 Kudos
Kelter
Level 10

We build and use our own merge modules, and have for years. We use them for all of the reasons merge modules are useful.

I've been building, testing, and repeating for the past two month of developing a new product, and then just yesterday, the problem popped up again. I reverted to an earlier version of the installer and the merge module projects (one that had built with no problem), rebuilt, and got the same error again, so it's not related to changes I made to the project.

The idea of a path length issue was mentioned, so i moved the whole project to the root of the C: drive, and still got the same issue (the longest path was a mere 125 characters)

Finally, I removed the merge modules from my project, and re-added them by browsing to their respective build directories. (So in the redistributables view, they were listed as "Installed Locally" instead of "Local Repository." It finally built.

Windows has no concept of the repository. Only InstallShield does.

(Incidentally, during this process, i found that if you have a merge module project set to publish to the repository, and the repository doesn't exist, IS doesn't fail gracefully, it crashes with a memory access violation.)
0 Kudos
Christopher_Pai
Level 16

I think some thing was lost in communication. I make extensive use of merge modules also ( using WiX actually ). Perhaps we should have a chat sometime to share some ideas.

BTW, I don't use InstallShield's 'repositories'. Artifact handling is a function of my build automation not of my installation tools.
0 Kudos
Kelter
Level 10

I'd like to devote some time to more closely identifying the root cause here...is it referencing merge modules from a directory above the project directory? Is it some "registration" that happens when publishing to the repository? Is it the method by which the module is added to the wrapping installation project? I've solved the problem, but haven't identified the root cause. Perhaps a process explorer trace will get me what i'm looking for. Perhaps another time.


BTW, I don't use InstallShield's 'repositories'. Artifact handling is a function of my build automation not of my installation tools.


This is a good rule to follow. I'll hold to this dearly from now on.

Perhaps we should have a chat sometime to share some ideas.


I'd love to! Both of us have dug pretty deep into different areas of InstallShield and MSI in general. I took a training class, and the best thing I got out of it was an opportunity to talk to other people in my domain.
0 Kudos
DataAnalyzer
Level 8

I had a similar problem that was driving me crazy. A build that was working previously, all of a sudden kept failing with this error.

I resolved it by rebooting the machine. The problem went away after that.
0 Kudos
deramor
Level 6

I have similar problems with MS MSMs. My issue was the paths were too long when expanded by the Installshield builder. I suggest moving your ism file to a directory close to the drive root (c:\a) and build from there.
0 Kudos