|
From: Tom K. <tku...@ho...> - 2004-12-31 00:26:14
|
Rob,
I just tried to decompile a Microsoft merge module and received a =
similar result.
D:\msft-MergeModules>dark -x msm-bin -m msvcrt.msm msvcrt.wxs
Microsoft (R) Windows Installer Xml Decompiler Version 2.0.2415.0
Copyright (C) Microsoft Corporation 2003. All rights reserved.
msvcrt.msm
dark.exe : error DARK0047 : Failed to close cab =
'D:\msft-MergeModules\msm-bin\MergeModule.CAB'.
dark.exe : warning DARK0004 : Unable to find existing file =
D:\msft-MergeModules\msm-bin\extract\Global_VC_CRT_f0.51D569E0_8A28_11D2_=
B962_006097C4DE24 to place in src location =
\Redist\MS\System\msvcrt.dll. Will likely cause a linker break.
For what it's worth the cab is named MergeModule.CABinet not =
MergeModule.CAB.
Microsoft merge module
D:\msft-MergeModules>cscript /nologo D:\WiStream.vbs msvcrt.msm
MergeModule.CABinet
SummaryInformation
Merge Module built using WIX
D:\>cscript /nologo D:\WiStream.vbs example.msm
MergeModule.CABinet
SummaryInformation
Is dark trying to close the wrong file when extracting the cab file from =
merge modules?
Tomk.
----- Original Message -----=20
From: Tom Kufeldt<mailto:tku...@ho...>=20
To: ro...@us...<mailto:ro...@us...> =
; 'Vitaly Dolya'<mailto:vd...@tm...> ; =
wix...@li...<mailto:wix...@li...>=20
Sent: Thursday, December 30, 2004 3:43 PM
Subject: Re: [WiX-users] Dark Error - error DARK0047 : Failed to close =
cab
Rob,
This error is present on WinXP SP1 and SP2. The product packaged in =
the merge module=20
is intended for versions of Windows from Win2k and later but the merge =
module=20
development has been done on WinXP.
This error occurred while doing new development using Wix to create a =
merge module
to replace an installer package originally created using Wise for =
Windows Installer v2.0.
That version of Wise was abandoned when it was discovered that it was =
not possible to=20
automate the msi build process using the Wise tools. The Windows =
Installer v2.0 SDK
and msi2xml tools were used to convert the wsi file to an msi file and =
automate the=20
build process.
Since the product is a shared component within the organization a =
requirement was=20
generated to create a merge module in place of the installer package. =
At this point Wix
became available and was chosen as the tool set to build Windows based =
installers and
merge modules. dark.exe was used to decompile the original installer =
file and portions=20
of this were used to create the Wix source for the merge module. =20
Both cab files in the installer file and the merge module contain the =
same files. However
merge module also includes the debug symbol files for the executables =
in the cab file.
Therefore the merge module cab file is larger of the two cab files.
To date I am unaware of any problems merging the msm file or =
installing the subsequent
msi file. So the only Wix related issue I have seen thus far occurs =
while using dark.exe to
extract the cab file from a merge module created using candle.exe, =
lit.exe and light.exe.
Tomk.
Additional detail:
msi cab =20
--a-- - - - - - 22,820,354 12-28-2004 =
example.cab
msm cab
--a-- - - - - - 31,293,104 12-28-2004 =
MergeModule.CABinet
The installer file was created using the following tools
msi2xml<https://sourceforge.net/projects/msi2xml/>
--a-- W32i APP ENU 2.1.8.948 shp 327,680 03-01-2004 =
xml2msi.exe
Windows Installer v2.0 =
SDK<http://msdn.microsoft.com/library/default.asp?url=3D/library/en-us/ms=
i/setup/windows_installer_scripting_examples.asp> script examples
--a-- - - - - - 12,571 06-26-2002 =
WiMakCab.vbs
--a-- - - - - - 10,965 06-26-2002 =
WiFilVer.vbs
=20
--a-- W32i APP ENU 5.1.2600.0 shp 79,360 10-23-2002 =
makecab.exe
The merge module was built using v2.0.415.0 of the Wix tools
--a-- W32i APP - 2.0.2415.0 shp 15,872 12-27-2004 candle.exe
--a-- W32i APP - 2.0.2415.0 shp 24,576 12-27-2004 lit.exe
--a-- W32i APP - 2.0.2415.0 shp 32,768 12-27-2004 light.exe
--a-- W32i DLL - 2.0.2415.0 shp 1,253,376 12-27-2004 wix.dll
--a-- W32i - - - - 188,416 12-27-2004 wixcab.dll
The output from dark
Installer file
D:\>dark -x msi_bin example.msi example.wxs
Microsoft (R) Windows Installer Xml Decompiler Version 2.0.2415.0
Copyright (C) Microsoft Corporation 2003. All rights reserved.
example.msi
Merge module
D:\>dark -x msm_bin -m example.msm example-msm.wxs
Microsoft (R) Windows Installer Xml Decompiler Version 2.0.2415.0
Copyright (C) Microsoft Corporation 2003. All rights reserved.
example.msm
dark.exe : error DARK0047 : Failed to close cab =
'D:\msm_bin\MergeModule.CAB'.
dark.exe : warning DARK0004 : Unable to find existing file=20
=
D:\msm_bin\extract\FileTableName.AE66FADE_B694_436B_BC4B_3953E76FB78F to =
place in src location \PROVIDER\FILENAME.DLL. Will likely =
cause a linker=20
break.
Note: There is a DARK0004 warning for each file in the cab. And =
the directory msm_bin=20
from the command line is empty.
----- Original Message -----=20
From: Rob Mensching<mailto:ro...@us...>=20
To: 'Vitaly Dolya'<mailto:vd...@tm...> ; =
wix...@li...<mailto:wix...@li...>=20
Cc: 'Tom Kufeldt'<mailto:tku...@ho...>=20
Sent: Thursday, December 30, 2004 10:09 AM
Subject: RE: [WiX-users] Dark Error - error DARK0047 : Failed to =
close cab
Tom, did your scripts decompress the cabinet from the MSI file as =
well? I think the error you're seeing from dark is occurring at the end =
of the decompliation after dark is done dealing with the cabinet. =
Vitaly is correct if you are on an older OS (Win9x and some Win2k. I =
thought it was fixed in one of the SPs, but Vitaly is more likely to be =
right than me), there were some issues with the cabinet processing code =
when cabinets were a particular size and shape.
This thread plus the other threads about wixcab.dll not being as =
fast as it could be makes me wonder if there are some issues in the =
wixcab.dll somewhere. Tom, if you can provide more detailed information =
about the issues you are seeing that would be much appreciated.
|