|
This post has NOT been accepted by the mailing list yet.
I'm trying to create a bundle for my installer. The bundle contains among other thing an msi package of a third-party product. In addition to msi file, this package includes a directory structure with about 11000 files. The directory structure must be stored in the same directory as the msi file at the moment of installation.
MsiPackage element looks like:
<MsiPackage Id="3rd.Client" DisplayName="3rd-party product" SourceFile=".\3rd\Client_32.msi" Compressed="yes" > <PayloadGroupRef Id="3rd.Client.Payload" /> </MsiPackage>
PayloadGroup element looks like (I've generated it with PowerShell):
<PayloadGroup Id="3rd.Client.Payload "> <Payload SourceFile="<Payload-Directory>\<File-1>" Name="<Target-Directory>\<File-1>" />
<Payload SourceFile="<Payload-Directory>\<File-2>" Name="<Target-Directory>\<File-2>" />
.....
If I'm trying to build the project in Visual Studio, light.exe is running for >20 minutes and then crashes with LGHT0001: Exception of type 'System.OutOfMemoryException' was thrown
Exception Type: System.OutOfMemoryException
Stack Trace:
at System.Collections.Generic.Dictionary`2.Resize(Int32 newSize, Boolean forceNewHashCodes)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.ObjectModel.KeyedCollection`2.AddKey(TKey key, TItem item)
at System.Collections.ObjectModel.KeyedCollection`2.InsertItem(Int32 index, TItem item)
at System.Collections.ObjectModel.Collection`1.Add(T item)
at Microsoft.Tools.WindowsInstallerXml.WixGroupingOrdering.Item.AddAfter(Item after, IMessageHandler messageHandler)
at Microsoft.Tools.WindowsInstallerXml.WixGroupingOrdering.Item.AddAfter(ItemCollection items, IMessageHandler messageHandler)
at Microsoft.Tools.WindowsInstallerXml.WixGroupingOrdering.Item.FlattenAfters(IMessageHandler messageHandler)
at Microsoft.Tools.WindowsInstallerXml.WixGroupingOrdering.FlattenOrdering()
at Microsoft.Tools.WindowsInstallerXml.WixGroupingOrdering.LoadFlattenOrderGroups()
at Microsoft.Tools.WindowsInstallerXml.WixGroupingOrdering.FlattenAndRewriteGroups(String parentType, Boolean removeUsedRows)
at Microsoft.Tools.WindowsInstallerXml.Linker.FlattenBundleTables(Output output)
at Microsoft.Tools.WindowsInstallerXml.Linker.Link(SectionCollection sections, ArrayList transforms, OutputType expectedOutputType)
at Microsoft.Tools.WindowsInstallerXml.Tools.Light.Run(String[] args)
Is my approach correct from conceptual point of view? What else could I do?
Thanks in advance!
|