|
I keep getting the following error which makes no sense to me because it is putting references to my <Directory>'s into the various Sequences for processing. Why would a merging in a merge module be creating sequences from my directory elements? I've attached the relevant output, snippets, and source files below. If you need/want more I can provide it. Thanks! Jon Here's the output from Orca:
Here's the snippets of the references to the merge module in my package: <Directory Id="TARGETDIR" Name="SourceDir"> <!-- Include all Merge Modules --> <!-- Custom --> <Merge Id='CrystalReports85SP3.msm' Language='1033' src='\library\Merge Modules\Custom\CrystalReports85SP3.msm' FileCompression="yes" DiskId='1' /> </Directory> <Feature Id="Complete" Title="$(loc.FeatureClientTitle)" Description="$(loc.FeatureClientDesc)" Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR"> <!-- Crystal Reports --> <MergeRef Id="CrystalReports85SP3.msm" /> <!-- Crystal Reports 8.5 SP3 --> </Feature> Here's the WiX source to my Merge Module: CrystalReports85SP3.wxs <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi"> <Module Id="CrystalReports85SP3" Guid="AEE6E0E9-B3E2-4C6E-B38D-4EC75E16B1A5" Language="0" Version="1.0.0" > <Package Id="B45644E9-9D9B-48B2-B5B4-55E024794966" AdminImage="no" Comments="Contact: Your local administrator" Compressed="yes" Description="Crystal Reports 8.5 SP3 Merge Modules" InstallerVersion="200" Keywords="MergeModule,MSI,Database" Languages="1033" Manufacturer="Some Company" Platforms="Intel" ShortNames="no" SummaryCodepage="1252" /> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="SystemFolder" SourceName="System32"> <Component Id="Crpaig80.dll" Guid="5F1328F6-D21B-4FF2-BAC0-1310EA8C2A25"> <File Id="Crpaig80.dll" Name="Crpaig80.dll" ReadOnly="yes" Compressed="yes" KeyPath="yes" /> </Component> <Component Id="Implode.dll" Guid="2B07AEE4-FF67-4C98-9387-3D335DB97937"> <File Id="Implode.dll" Name="Implode.dll" ReadOnly="yes" Compressed="yes" KeyPath="yes" /> </Component> <Component Id="P2smon.Dll" Guid="DA9B3616-4A0A-45E2-ACB3-D483871F3425" SharedDllRefCount="yes"> <File Id="P2smon.Dll" Name="P2smon.Dll" Compressed="yes" KeyPath="yes" /> </Component> </Directory> <Directory Id="ProgramFilesFolder" LongName="Program Files" Name="PFiles"> <Directory Id="SeagateSoftware" LongName="Seagate Software" Name="Seagate"> <Directory Id="ReportDesignerComponent" LongName="Report Designer Component" Name="RDC"> <Component Id="craxdrt.dll" Guid="19563F71-36A5-4FF4-A933-04BD68D841DE" SharedDllRefCount="yes"> <File Id="craxdrt.dll" Name="craxdrt.dll" Compressed="yes" KeyPath="yes" /> <Registry Id="craxdrt.dll_0" Root="HKCR" Key="CLSID\{B4741E10-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_1" Root="HKCR" Key="CLSID\{B4741E10-45A6-11D1-ABEC-00A0C9274B91}\MiscStatus\1" Type="string" Value="1024" /> <Registry Id="craxdrt.dll_2" Root="HKCR" Key="CLSID\{B4741E10-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Registry Id="craxdrt.dll_3" Root="HKCR" Key="CLSID\{B4741FD0-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_4" Root="HKCR" Key="CLSID\{B4741FD0-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Registry Id="craxdrt.dll_5" Root="HKCR" Key="CLSID\{B4742170-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_6" Root="HKCR" Key="CLSID\{B4742170-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Registry Id="craxdrt.dll_7" Root="HKCR" Key="CLSID\{B4742180-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_8" Root="HKCR" Key="CLSID\{B4742180-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Registry Id="craxdrt.dll_9" Root="HKCR" Key="CLSID\{B4742190-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_10" Root="HKCR" Key="CLSID\{B4742190-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Registry Id="craxdrt.dll_11" Root="HKCR" Key="CLSID\{B47421A0-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_12" Root="HKCR" Key="CLSID\{B47421A0-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Class Id="B4741FD0-45A6-11D1-ABEC-00A0C9274B91" Context="InprocServer32" Description="Application Object" Advertise="yes"> <ProgId Id="CrystalRuntime.Application.8.5" Description="Application Object"> <ProgId Id="CrystalRuntime.Application" Description="Application Object" /> </ProgId> </Class> <Class Id="B4742170-45A6-11D1-ABEC-00A0C9274B91" Context="InprocServer32" Description="ParameterValue Object" Advertise="yes"> <ProgId Id="CrystalRuntime.ParameterValue.8.5" Description="ParameterValue Object"> <ProgId Id="CrystalRuntime.ParameterValue" Description="ParameterValue Object" /> </ProgId> </Class> <Class Id="B4742190-45A6-11D1-ABEC-00A0C9274B91" Context="InprocServer32" Description="ParameterValueInfo Object" Advertise="yes"> <ProgId Id="CrystalRuntime.ParameterValueInfo.8.5" Description="ParameterValueInfo Object"> <ProgId Id="CrystalRuntime.ParameterValueInfo" Description="ParameterValueInfo Object" /> </ProgId> </Class> <Class Id="B47421A0-45A6-11D1-ABEC-00A0C9274B91" Context="InprocServer32" Description="ParameterValueInfos Object" Advertise="yes"> <ProgId Id="CrystalRuntime.ParameterValueInfos.8.5" Description="ParameterValueInfos Object"> <ProgId Id="CrystalRuntime.ParameterValueInfos" Description="ParameterValueInfos Object" /> </ProgId> </Class> <Class Id="B4742180-45A6-11D1-ABEC-00A0C9274B91" Context="InprocServer32" Description="ParameterValues Object" Advertise="yes"> <ProgId Id="CrystalRuntime.ParameterValues.8.5" Description="ParameterValues Object"> <ProgId Id="CrystalRuntime.ParameterValues" Description="ParameterValues Object" /> </ProgId> </Class> <Class Id="B4741E10-45A6-11D1-ABEC-00A0C9274B91" Context="InprocServer32" Description="Report Object" Advertise="yes"> <ProgId Id="CrystalRuntime.Report.8.5" Description="Report Object"> <ProgId Id="CrystalRuntime.Report" Description="Report Object" /> </ProgId> </Class> <TypeLib Id="B4741C00-45A6-11D1-ABEC-00A0C9274B91" Language="0" MajorVersion="2048" MinorVersion="5" Description="Crystal Reports 8.5 ActiveX Designer Run Time Library" Cost="1" /> </Component> </Directory> <Directory Id="Viewers" Name="Viewers"> <Directory Id="ActiveXViewer" LongName="ActiveXViewer" Name="AXViewer"> <Component Id="crviewer.dll" Guid="81F8D95A-17AC-4556-BDBC-0E2F87EFEF72" SharedDllRefCount="yes"> <File Id="crviewer.dll" Name="crviewer.dll" Compressed="yes" KeyPath="yes" /> <Registry Id="crviewer.dll_0" Root="HKCR" Key="CLSID\{13FA5947-561C-11D1-BE3F-00A0C95A6A5C}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="crviewer.dll_1" Root="HKCR" Key="CLSID\{13FA5947-561C-11D1-BE3F-00A0C95A6A5C}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="crviewer.dll_2" Root="HKCR" Key="CLSID\{75347086-7260-11D1-BE46-00A0C95A6A5C}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="crviewer.dll_3" Root="HKCR" Key="CLSID\{75347086-7260-11D1-BE46-00A0C95A6A5C}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="crviewer.dll_4" Root="HKCR" Key="CLSID\{75C66E66-8949-11D2-BF6D-00A0C9DA4FA2}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="crviewer.dll_5" Root="HKCR" Key="CLSID\{75C66E66-8949-11D2-BF6D-00A0C9DA4FA2}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="crviewer.dll_6" Root="HKCR" Key="CLSID\{75C66E68-8949-11D2-BF6D-00A0C9DA4FA2}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="crviewer.dll_7" Root="HKCR" Key="CLSID\{75C66E68-8949-11D2-BF6D-00A0C9DA4FA2}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="crviewer.dll_8" Root="HKCR" Key="CLSID\{A0E5F37E-CA67-11D1-A817-00A0C92784CD}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="crviewer.dll_9" Root="HKCR" Key="CLSID\{A0E5F37E-CA67-11D1-A817-00A0C92784CD}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="crviewer.dll_10" Root="HKCR" Key="CLSID\{C4847596-972C-11D0-9567-00A0C9273C2A}\Control" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="crviewer.dll_12" Root="HKCR" Key="CLSID\{C4847596-972C-11D0-9567-00A0C9273C2A}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="crviewer.dll_13" Root="HKCR" Key="CLSID\{C4847596-972C-11D0-9567-00A0C9273C2A}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="crviewer.dll_14" Root="HKCR" Key="CLSID\{C4847596-972C-11D0-9567-00A0C9273C2A}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="crviewer.dll_15" Root="HKCR" Key="CLSID\{C4847596-972C-11D0-9567-00A0C9273C2A}\Insertable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="crviewer.dll_16" Root="HKCR" Key="CLSID\{C4847596-972C-11D0-9567-00A0C9273C2A}\MiscStatus" Type="string" Value="0" /> <Registry Id="crviewer.dll_17" Root="HKCR" Key="CLSID\{C4847596-972C-11D0-9567-00A0C9273C2A}\MiscStatus\1" Type="string" Value="131473" /> <Registry Id="crviewer.dll_18" Root="HKCR" Key="CLSID\{C4847596-972C-11D0-9567-00A0C9273C2A}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="crviewer.dll_19" Root="HKCR" Key="CLSID\{C4847596-972C-11D0-9567-00A0C9273C2A}\ToolboxBitmap32" Type="string" Value="[!crviewer.dll], 1" /> <Registry Id="crviewer.dll_20" Root="HKCR" Key="CLSID\{C4847596-972C-11D0-9567-00A0C9273C2A}\TypeLib" Type="string" Value="{C4847593-972C-11D0-9567-00A0C9273C2A}" /> <Registry Id="crviewer.dll_21" Root="HKCR" Key="CLSID\{C4847596-972C-11D0-9567-00A0C9273C2A}\Version" Type="string" Value="8.0" /> <Registry Id="crviewer.dll_22" Root="HKCR" Key="Component Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}" Name="409" Type="string" Value="Controls that are safely scriptable" /> <Registry Id="crviewer.dll_23" Root="HKCR" Key="Component Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}" Name="409" Type="string" Value="Controls safely initializable from persistent data" /> <Class Id="75C66E68-8949-11D2-BF6D-00A0C9DA4FA2" Context="InprocServer32" Description="Report Viewer - Field" Advertise="yes"> <ProgId Id="CRField.CRField.1" Description="Report Viewer - Field"> <ProgId Id="CRField.CRField" Description="Report Viewer - Field" /> </ProgId> </Class> <Class Id="75C66E66-8949-11D2-BF6D-00A0C9DA4FA2" Context="InprocServer32" Description="Report Viewer - Fields Collection" Advertise="yes"> <ProgId Id="CRFields.CRFields.1" Description="Report Viewer - Fields Collection"> <ProgId Id="CRFields.CRFields" Description="Report Viewer - Fields Collection" /> </ProgId> </Class> <Class Id="75347086-7260-11D1-BE46-00A0C95A6A5C" Context="InprocServer32" Description="Report Viewer - Event Information" Advertise="yes"> <ProgId Id="CRVEventInfo.CRVEventInfo.1" Description="Report Viewer - Event Information"> <ProgId Id="CRVEventInfo.CRVEventInfo" Description="Report Viewer - Event Information" /> </ProgId> </Class> <Class Id="C4847596-972C-11D0-9567-00A0C9273C2A" Context="InprocServer32" Description="Crystal Report Viewer Control" Advertise="yes"> <ProgId Id="CRViewer.CRViewer.8.0" Description="Crystal Report Viewer Control"> <ProgId Id="CRViewer.CRViewer" Description="Crystal Report Viewer Control" /> </ProgId> </Class> <Class Id="13FA5947-561C-11D1-BE3F-00A0C95A6A5C" Context="InprocServer32" Description="Report Viewer - Cursor selection" Advertise="yes"> <ProgId Id="CRVTrackCursorInfo.CRVTrackCursorInfo.1" Description="Report Viewer - Cursor selection"> <ProgId Id="CRVTrackCursorInfo.CRVTrackCursorInfo" Description="Report Viewer - Cursor selection" /> </ProgId> </Class> <Class Id="A0E5F37E-CA67-11D1-A817-00A0C92784CD" Context="InprocServer32" Description="Crystal Report Source Router" Advertise="yes"> <ProgId Id="ReportSourceRouter.ReportSourceRouter.1" Description="Crystal Report Source Router"> <ProgId Id="ReportSourceRouter.ReportSourceRouter" Description="Crystal Report Source Router" /> </ProgId> </Class> <TypeLib Id="C4847593-972C-11D0-9567-00A0C9273C2A" Language="0" MajorVersion="2048" MinorVersion="0" Description="Crystal Report Viewer Control" Cost="1" /> </Component> <Component Id="cselexpt.ocx" Guid="5562A6E8-8DD7-4332-B1CF-C64A34ABAEE1" SharedDllRefCount="yes"> <File Id="cselexpt.ocx" Name="cselexpt.ocx" Compressed="yes" KeyPath="yes" /> <Registry Id="cselexpt.ocx_0" Root="HKCR" Key="CLSID\{5C9EA134-127A-11D1-BFB4-00A0C936E6F9}\Control" /> <Registry Id="cselexpt.ocx_1" Root="HKCR" Key="CLSID\{5C9EA134-127A-11D1-BFB4-00A0C936E6F9}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="cselexpt.ocx_2" Root="HKCR" Key="CLSID\{5C9EA134-127A-11D1-BFB4-00A0C936E6F9}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="cselexpt.ocx_3" Root="HKCR" Key="CLSID\{5C9EA134-127A-11D1-BFB4-00A0C936E6F9}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="cselexpt.ocx_4" Root="HKCR" Key="CLSID\{5C9EA134-127A-11D1-BFB4-00A0C936E6F9}\MiscStatus" Type="string" Value="0" /> <Registry Id="cselexpt.ocx_5" Root="HKCR" Key="CLSID\{5C9EA134-127A-11D1-BFB4-00A0C936E6F9}\MiscStatus\1" Type="string" Value="131217" /> <Registry Id="cselexpt.ocx_6" Root="HKCR" Key="CLSID\{5C9EA134-127A-11D1-BFB4-00A0C936E6F9}\ToolboxBitmap32" Type="string" Value="[!cselexpt.ocx], 1024" /> <Registry Id="cselexpt.ocx_7" Root="HKCR" Key="CLSID\{5C9EA134-127A-11D1-BFB4-00A0C936E6F9}\TypeLib" Type="string" Value="{5C9EA131-127A-11D1-BFB4-00A0C936E6F9}" /> <Registry Id="cselexpt.ocx_8" Root="HKCR" Key="CLSID\{5C9EA134-127A-11D1-BFB4-00A0C936E6F9}\Version" Type="string" Value="1.0" /> <Class Id="5C9EA134-127A-11D1-BFB4-00A0C936E6F9" Context="InprocServer32" Description="VSelExpert Control" Advertise="yes"> <ProgId Id="VSELEXPERT.VSelExpertCtrl.1" Description="VSelExpert Control" /> </Class> <Class Id="5C9EA135-127A-11D1-BFB4-00A0C936E6F9" Context="InprocServer32" Description="VSelExpert Property Page" Advertise="yes" /> <TypeLib Id="5C9EA131-127A-11D1-BFB4-00A0C936E6F9" Language="0" MajorVersion="1" MinorVersion="0" Description="Crystal Select Expert OLE Control module" Cost="1" /> </Component> <Component Id="sviewhlp.dll" Guid="FD9DE154-6396-4361-AC3E-4F0A8BF704A7" SharedDllRefCount="yes"> <File Id="sviewhlp.dll" Name="sviewhlp.dll" Compressed="yes" KeyPath="yes" /> <Registry Id="sviewhlp.dll_0" Root="HKCR" Key="CLSID\{BD10A9C1-07CC-11D2-BEFF-00A0C95A6A5C}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="sviewhlp.dll_1" Root="HKCR" Key="CLSID\{BD10A9C1-07CC-11D2-BEFF-00A0C95A6A5C}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Class Id="BD10A9C1-07CC-11D2-BEFF-00A0C95A6A5C" Context="InprocServer32" Description="ReportExport Class" Advertise="yes"> <ProgId Id="ReportExport.ReportExport.1" Description="ReportExport Class"> <ProgId Id="ReportExport.ReportExport" Description="ReportExport Class" /> </ProgId> </Class> <TypeLib Id="BD10A9B3-07CC-11D2-BEFF-00A0C95A6A5C" Language="0" MajorVersion="1" MinorVersion="0" Description="Crystal Report Export" Cost="1" /> </Component> <Component Id="swebrs.dll" Guid="FE1FE0BD-C5E3-494A-BB30-70649AEAA469" SharedDllRefCount="yes"> <File Id="swebrs.dll" Name="swebrs.dll" Compressed="yes" KeyPath="yes" /> <Registry Id="swebrs.dll_0" Root="HKCR" Key="CLSID\{F2CA2115-C8D2-11D1-BEBD-00A0C95A6A5C}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="swebrs.dll_1" Root="HKCR" Key="CLSID\{F2CA2115-C8D2-11D1-BEBD-00A0C95A6A5C}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="swebrs.dll_2" Root="HKCR" Key="CLSID\{F2CA2115-C8D2-11D1-BEBD-00A0C95A6A5C}\TypeLib" Type="string" Value="{F2CA2107-C8D2-11D1-BEBD-00A0C95A6A5C}" /> <Registry Id="swebrs.dll_3" Root="HKCR" Key="CLSID\{F2CA2119-C8D2-11D1-BEBD-00A0C95A6A5C}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="swebrs.dll_4" Root="HKCR" Key="CLSID\{F2CA2119-C8D2-11D1-BEBD-00A0C95A6A5C}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="swebrs.dll_5" Root="HKCR" Key="CLSID\{F2CA2119-C8D2-11D1-BEBD-00A0C95A6A5C}\TypeLib" Type="string" Value="{F2CA2107-C8D2-11D1-BEBD-00A0C95A6A5C}" /> <Class Id="F2CA2119-C8D2-11D1-BEBD-00A0C95A6A5C" Context="InprocServer32" Description="WebReportBroker Class" Advertise="yes"> <ProgId Id="WebReportBroker.WebReportBroker.1" Description="WebReportBroker Class"> <ProgId Id="WebReportBroker.WebReportBroker" Description="WebReportBroker Class" /> </ProgId> </Class> <Class Id="F2CA2115-C8D2-11D1-BEBD-00A0C95A6A5C" Context="InprocServer32" Description="WebReportSource Class" Advertise="yes"> <ProgId Id="WebReportSource.WebReportSource.1" Description="WebReportSource Class"> <ProgId Id="WebReportSource.WebReportSource" Description="WebReportSource Class" /> </ProgId> </Class> <TypeLib Id="F2CA2107-C8D2-11D1-BEBD-00A0C95A6A5C" Language="0" MajorVersion="1" MinorVersion="1" Description="Seagate Crystal Reports Web Report Broker" Cost="1" /> </Component> <Component Id="xqviewer.dll" Guid="1339138F-DB1B-47B1-B6A3-C3F7FB50FA21"> <File Id="xqviewer.dll" Name="xqviewer.dll" Compressed="yes" KeyPath="yes" /> <Registry Id="xqviewer.dll_0" Root="HKCR" Key="CLSID\{9155AFF8-800B-49f4-A48C-F4F034DF9EFF}\Control" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="xqviewer.dll_1" Root="HKCR" Key="CLSID\{9155AFF8-800B-49f4-A48C-F4F034DF9EFF}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="xqviewer.dll_2" Root="HKCR" Key="CLSID\{9155AFF8-800B-49f4-A48C-F4F034DF9EFF}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="xqviewer.dll_3" Root="HKCR" Key="CLSID\{9155AFF8-800B-49f4-A48C-F4F034DF9EFF}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="xqviewer.dll_4" Root="HKCR" Key="CLSID\{9155AFF8-800B-49f4-A48C-F4F034DF9EFF}\Insertable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="xqviewer.dll_5" Root="HKCR" Key="CLSID\{9155AFF8-800B-49f4-A48C-F4F034DF9EFF}\MiscStatus" Type="string" Value="0" /> <Registry Id="xqviewer.dll_6" Root="HKCR" Key="CLSID\{9155AFF8-800B-49f4-A48C-F4F034DF9EFF}\MiscStatus\1" Type="string" Value="131473" /> <Registry Id="xqviewer.dll_7" Root="HKCR" Key="CLSID\{9155AFF8-800B-49f4-A48C-F4F034DF9EFF}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="xqviewer.dll_8" Root="HKCR" Key="CLSID\{9155AFF8-800B-49f4-A48C-F4F034DF9EFF}\ToolboxBitmap32" Type="string" Value="[!xqviewer.dll], 1" /> <Registry Id="xqviewer.dll_9" Root="HKCR" Key="CLSID\{9155AFF8-800B-49f4-A48C-F4F034DF9EFF}\TypeLib" Type="string" Value="{9155AFF7-800B-49f4-A48C-F4F034DF9EFF}" /> <Registry Id="xqviewer.dll_10" Root="HKCR" Key="CLSID\{9155AFF8-800B-49f4-A48C-F4F034DF9EFF}\Version" Type="string" Value="9.2" /> <Class Id="9155AFF8-800B-49F4-A48C-F4F034DF9EFF" Context="InprocServer32" Description="Crystal Query Viewer 9" Advertise="yes"> <ProgId Id="CrystalQueryViewer.QueryViewer.9.2" Description="Crystal Query Viewer 9"> <ProgId Id="CrystalQueryViewer.QueryViewer" Description="Crystal Query Viewer 9" /> </ProgId> </Class> <TypeLib Id="9155AFF7-800B-49F4-A48C-F4F034DF9EFF" Language="0" MajorVersion="2304" MinorVersion="2" Cost="1" /> </Component> <!-- Cannot find installation location, though it does reside in a cab file found in the ActiveXViewer directory --> <Component Id="CRSmartTag.dll" Guid="54097C86-86CA-4D3E-AF66-1CBEDDF87963" SharedDllRefCount="yes"> <File Id="CRSmartTag.dll" Name="CRSMAR~1.DLL" LongName="CRSmartTag.dll" Compressed="yes" KeyPath="yes" /> <Registry Id="CRSmartTag.dll_0" Root="HKCR" Key="CLSID\{34C28AD5-A1A6-4674-A5A6-D0ADDAC476A5}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="CRSmartTag.dll_1" Root="HKCR" Key="CLSID\{34C28AD5-A1A6-4674-A5A6-D0ADDAC476A5}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="CRSmartTag.dll_2" Root="HKCR" Key="CLSID\{34C28AD5-A1A6-4674-A5A6-D0ADDAC476A5}\TypeLib" Type="string" Value="{0225D1A4-8073-4611-B802-378C8767C50A}" /> <Registry Id="CRSmartTag.dll_3" Root="HKCR" Key="CLSID\{3DD7428A-E4BE-4F82-AF84-14A328ECD082}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="CRSmartTag.dll_4" Root="HKCR" Key="CLSID\{3DD7428A-E4BE-4F82-AF84-14A328ECD082}\Programmable" Action="createKeyAndRemoveKeyOnUninstall" /> <Registry Id="CRSmartTag.dll_5" Root="HKCR" Key="CLSID\{3DD7428A-E4BE-4F82-AF84-14A328ECD082}\TypeLib" Type="string" Value="{0225D1A4-8073-4611-B802-378C8767C50A}" /> <!-- Removed because they are part of HKCU and the rest are part of HKCR. Causes ICE57 because the values are written to both Current User and Local Machine. --> <!-- <Registry Id="_17D009BDD7 |
|
What you are seeing may be what is described in this
article:
Append a GUID to every entry in
the Directory table. This includes Directory table entries that specify Windows
Installer SystemFolder properties, for example,
SystemFolder.00000000_0000_0000_0000_000000000000. The library Mergemod.dll adds
custom actions to set the SystemFolder property.
When a predefined directory is included in a merge module, the merge tool automatically adds a Custom Action Type 51 to the target database. Kind
regards,
Stefan Krueger Microsoft Windows Installer MVP Windows Installer FAQ http://www.msifaq.com - http://www.msifaq.de InstallSite - Resources for Setup Developers http://www.installsite.org http://www.installsite.de (GERMAN) From: [hidden email] [mailto:[hidden email]] On Behalf Of Jon Brandenburg Sent: Friday, September 16, 2005 5:45 AM To: [hidden email] Subject: [WiX-users] ICE82 Warnings from duplicate sequence number created from <Directory> elements using Merge Modules I keep getting the following error which makes no sense to me because it is putting references to my <Directory>'s into the various Sequences for processing. Why would a merging in a merge module be creating sequences from my directory elements? I've attached the relevant output, snippets, and source files below. If you need/want more I can provide it. Thanks! Jon Here's the output from Orca:
Here's the snippets of the references to the merge module in my package: <Directory Id="TARGETDIR" Name="SourceDir"> <!-- Include all Merge Modules --> <!-- Custom --> <Merge Id='CrystalReports85SP3.msm' Language='1033' src='\library\Merge Modules\Custom\CrystalReports85SP3.msm' FileCompression="yes" DiskId='1' /> </Directory> <Feature Id="Complete" Title="$(loc.FeatureClientTitle)" Description="$(loc.FeatureClientDesc)" Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR"> <!-- Crystal Reports --> <MergeRef Id="CrystalReports85SP3.msm" /> <!-- Crystal Reports 8.5 SP3 --> </Feature> Here's the WiX source to my Merge Module: CrystalReports85SP3.wxs <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi"> <Module Id="CrystalReports85SP3" Guid="AEE6E0E9-B3E2-4C6E-B38D-4EC75E16B1A5" Language="0" Version="1.0.0" > <Package Id="B45644E9-9D9B-48B2-B5B4-55E024794966" AdminImage="no" Comments="Contact: Your local administrator" Compressed="yes" Description="Crystal Reports 8.5 SP3 Merge Modules" InstallerVersion="200" Keywords="MergeModule,MSI,Database" Languages="1033" Manufacturer="Some Company" Platforms="Intel" ShortNames="no" SummaryCodepage="1252" /> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="SystemFolder" SourceName="System32"> <Component Id="Crpaig80.dll" Guid="5F1328F6-D21B-4FF2-BAC0-1310EA8C2A25"> <File Id="Crpaig80.dll" Name="Crpaig80.dll" ReadOnly="yes" Compressed="yes" KeyPath="yes" /> </Component> <Component Id="Implode.dll" Guid="2B07AEE4-FF67-4C98-9387-3D335DB97937"> <File Id="Implode.dll" Name="Implode.dll" ReadOnly="yes" Compressed="yes" KeyPath="yes" /> </Component> <Component Id="P2smon.Dll" Guid="DA9B3616-4A0A-45E2-ACB3-D483871F3425" SharedDllRefCount="yes"> <File Id="P2smon.Dll" Name="P2smon.Dll" Compressed="yes" KeyPath="yes" /> </Component> </Directory> <Directory Id="ProgramFilesFolder" LongName="Program Files" Name="PFiles"> <Directory Id="SeagateSoftware" LongName="Seagate Software" Name="Seagate"> <Directory Id="ReportDesignerComponent" LongName="Report Designer Component" Name="RDC"> <Component Id="craxdrt.dll" Guid="19563F71-36A5-4FF4-A933-04BD68D841DE" SharedDllRefCount="yes"> <File Id="craxdrt.dll" Name="craxdrt.dll" Compressed="yes" KeyPath="yes" /> <Registry Id="craxdrt.dll_0" Root="HKCR" Key="CLSID\{B4741E10-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_1" Root="HKCR" Key="CLSID\{B4741E10-45A6-11D1-ABEC-00A0C9274B91}\MiscStatus\1" Type="string" Value="1024" /> <Registry Id="craxdrt.dll_2" Root="HKCR" Key="CLSID\{B4741E10-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Registry Id="craxdrt.dll_3" Root="HKCR" Key="CLSID\{B4741FD0-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_4" Root="HKCR" Key="CLSID\{B4741FD0-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Registry Id="craxdrt.dll_5" Root="HKCR" Key="CLSID\{B4742170-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_6" Root="HKCR" Key="CLSID\{B4742170-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Registry Id="craxdrt.dll_7" Root="HKCR" Key="CLSID\{B4742180-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_8" Root="HKCR" Key="CLSID\{B4742180-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Registry Id="craxdrt.dll_9" Root="HKCR" Key="CLSID\{B4742190-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_10" Root="HKCR" Key="CLSID\{B4742190-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Registry Id="craxdrt.dll_11" Root="HKCR" Key="CLSID\{B47421A0-45A6-11D1-ABEC-00A0C9274B91}\InprocServer32" Name="ThreadingModel" Type="string" Value="Apartment" /> <Registry Id="craxdrt.dll_12" Root="HKCR" Key="CLSID\{B47421A0-45A6-11D1-ABEC-00A0C9274B91}\TypeLib" Type="string" Value="{B4741C00-45A6-11D1-ABEC-00A0C9274B91}" /> <Class Id="B4741FD0-45A6-11D1-ABEC-00A0C9274B91" Context="InprocServer32" Description="Application Object" Advertise="yes"> <ProgId Id="CrystalRuntime.Application.8.5" Description="Application Object"> <ProgId Id="CrystalRuntime.Application" Description="Application Object" /> </ProgId> </Class> <Class Id="B4742170-45A6-11D1-ABEC-00A0C9274B91" Context="InprocServer32" Description="ParameterValue Object" Advertise="yes"> <ProgId Id="CrystalRuntime.ParameterValue.8.5" Description="ParameterValue Object"> <ProgId Id="CrystalRuntime.ParameterValue" Description="ParameterValue Object" /> </ProgId> </Class> <Class Id="B4742190-45A6-11D1-ABEC-00A0C9274B91" Context="InprocServer32" Description="ParameterValueInfo Object" Advertise="yes"> <ProgId Id="CrystalRuntime.ParameterValueInfo.8.5" Description="ParameterValueInfo Object"> <ProgId Id="CrystalRuntime.ParameterValueInfo" Description="ParameterValueInfo Object" /> </ProgId> </Class> <Class Id="B47421A0-45A6-11D1-ABEC-00A0C9274B91" Context="InprocServer32" Description="ParameterValueInfos Object" Advertise="yes"> <ProgId Id="CrystalRuntime.ParameterValueInfos.8.5" Description="ParameterValueInfos Object"> <ProgId Id="CrystalRuntime.ParameterValueInfos" Description="ParameterValueInfos Object" /> </ProgId> </Class> <Class Id="B4742180-45A6-11D1-ABEC-00A0C9274B91" Context="InprocServer32" Description="ParameterVal |
|
In reply to this post by Jon Brandenburg
What you are seeing may be what is described in this
article:
Append a GUID to every entry in
the Directory table. This includes Directory table entries that specify Windows
Installer SystemFolder properties, for example,
SystemFolder.00000000_0000_0000_0000_000000000000. The library Mergemod.dll adds
custom actions to set the SystemFolder property.
When a predefined directory is included in a merge module, the merge tool automatically adds a Custom Action Type 51 to the target database. Kind
regards,
Stefan Krueger Microsoft Windows Installer MVP Windows Installer FAQ http://www.msifaq.com - http://www.msifaq.de InstallSite - Resources for Setup Developers http://www.installsite.org http://www.installsite.de (GERMAN) From: [hidden email] [mailto:[hidden email]] On Behalf Of Jon Brandenburg Sent: Friday, September 16, 2005 5:45 AM To: [hidden email] Subject: [WiX-users] ICE82 Warnings from duplicate sequence number created from <Directory> elements using Merge Modules I keep getting the following error which makes no sense to me because it is putting references to my <Directory>'s into the various Sequences for processing. Why would a merging in a merge module be creating sequences from my directory elements? I've attached the relevant output, snippets, and source files below. If you need/want more I can provide it. Thanks! Jon Here's the output from Orca:
... |
|
In reply to this post by Stefan Krueger [MVP]
If I am understanding your explainantion correctly then you are saying
the fact that the action appears is correct behavior. If this is correct, then the duplicate sequence #'s would appear to be a problem with light? The problem I'm seeing is that if I run dark against say comcat.msm (a microsoft supplied merge module) and inspect the source that it generates the directory references and everything else appear to be the same between my custom merge module and the source generated by dark. However when I compare the MSM file in Orca I see that the directory references for comcat.msm for SystemFolder appear as Directory Parent_Directory DefaultDir SystemFolder TARGETDIR . and when I view my custom MSM in Orca it appears as: ProgramFilesFolder.AEE6E0E9_B3E2_4C6E_B38D_4EC75E16B1A5 TARGETDIR . SystemFolder.AEE6E0E9_B3E2_4C6E_B38D_4EC75E16B1A5 TARGETDIR . So it appears either the microsoft merge module is incorrect or mine is. I have also compiled a new merge module based on the darked COMCAT.MSM and it generated the output simliar to my own custom merge module. If this behavior is in fact correct, then it leads me to believe that the light is not assigning a correct sequence # when generating the final MSI package, is this conclusion correct? If this is then it appears that I need to file a bug report if it does not already exist. Thanks! Jon Stefan Krueger wrote: > What you are seeing may be what is described in this article: > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/authoring_merge_module_directory_tables.asp > > Append a GUID to every entry in the Directory table. This includes > Directory table entries that specify Windows Installer SystemFolder > properties, for example, > SystemFolder.00000000_0000_0000_0000_000000000000. The library > Mergemod.dll adds custom actions to set the SystemFolder property. > When a predefined directory is included in a merge module, the merge > tool automatically adds a Custom Action Type 51 to the target database. > > Kind regards, > Stefan Krueger > Microsoft Windows Installer MVP > > Windows Installer FAQ > http://www.msifaq.com <http://www.msifaq.com/> - http://www.msifaq.de > <http://www.msifaq.de/> > > InstallSite - Resources for Setup Developers > http://www.installsite.org <http://www.installsite.org/> > http://www.installsite.de <http://www.installsite.de/> (GERMAN) > > ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
Duplicate sequence numbers are not a problem as long as you don't need the
order of the CustomActions to be consistent. These type 51 CustomActions' order relative to each other shouldn't be important. Also, this is not a light.exe issue. The behavior you are seeing is from mergemod.dll provided by the Windows Installer SDK. -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Jon Brandenburg Sent: Friday, September 16, 2005 8:08 AM To: Stefan Krueger Cc: [hidden email] Subject: Re: [WiX-users] ICE82 Warnings from duplicate sequence number created from <Directory> elements using Merge Modules If I am understanding your explainantion correctly then you are saying the fact that the action appears is correct behavior. If this is correct, then the duplicate sequence #'s would appear to be a problem with light? The problem I'm seeing is that if I run dark against say comcat.msm (a microsoft supplied merge module) and inspect the source that it generates the directory references and everything else appear to be the same between my custom merge module and the source generated by dark. However when I compare the MSM file in Orca I see that the directory references for comcat.msm for SystemFolder appear as Directory Parent_Directory DefaultDir SystemFolder TARGETDIR . and when I view my custom MSM in Orca it appears as: ProgramFilesFolder.AEE6E0E9_B3E2_4C6E_B38D_4EC75E16B1A5 TARGETDIR . SystemFolder.AEE6E0E9_B3E2_4C6E_B38D_4EC75E16B1A5 TARGETDIR . So it appears either the microsoft merge module is incorrect or mine is. I have also compiled a new merge module based on the darked COMCAT.MSM and it generated the output simliar to my own custom merge module. If this behavior is in fact correct, then it leads me to believe that the light is not assigning a correct sequence # when generating the final MSI package, is this conclusion correct? If this is then it appears that I need to file a bug report if it does not already exist. Thanks! Jon Stefan Krueger wrote: > What you are seeing may be what is described in this article: > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/a uthoring_merge_module_directory_tables.asp > > Append a GUID to every entry in the Directory table. This includes > Directory table entries that specify Windows Installer SystemFolder > properties, for example, > SystemFolder.00000000_0000_0000_0000_000000000000. The library > Mergemod.dll adds custom actions to set the SystemFolder property. > When a predefined directory is included in a merge module, the merge > tool automatically adds a Custom Action Type 51 to the target database. > > Kind regards, > Stefan Krueger > Microsoft Windows Installer MVP > > Windows Installer FAQ > http://www.msifaq.com <http://www.msifaq.com/> - http://www.msifaq.de > <http://www.msifaq.de/> > > InstallSite - Resources for Setup Developers > http://www.installsite.org <http://www.installsite.org/> > http://www.installsite.de <http://www.installsite.de/> (GERMAN) > > ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
Fair enough. So you are saying that when light builds the MSI it uses
the mergemod.dll which when building assigns the sequence # for each of the merge modules? I would have thought that light built a meta tree of the sequences, files, directories, etc and then indexed them, cross-referenced them, whatever and fed it into the MSI that it was building.. I assumed this because when adding items into the various sequences we can specify our own id's, so it appeared that light would step in and handle the various merge modules and change the sequence #'s for conflicting sequence #'s. Thanks for the explanation. Jon Rob Mensching wrote: >Duplicate sequence numbers are not a problem as long as you don't need the >order of the CustomActions to be consistent. These type 51 CustomActions' >order relative to each other shouldn't be important. > >Also, this is not a light.exe issue. The behavior you are seeing is from >mergemod.dll provided by the Windows Installer SDK. > > > ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
Light uses mergemod.dll only to merge in Merge Modules. It does that
processing very late because mergemod.dll operates on the final MSI output not against the data structures that WiX uses everywhere else. The Type 51 CustomActions that you are talking about are added by mergemod.dll. Thus light (the Binder to be more specific) doesn't actually know about the data added by the Merge Module (except the files which are accessible by a specific API from mergemod.dll). Fundamentally, there is less flexibility when merging in Merge Modules. -----Original Message----- From: Jon Brandenburg [mailto:[hidden email]] Sent: Friday, September 16, 2005 9:20 AM To: [hidden email] Cc: Stefan Krueger; [hidden email] Subject: Re: [WiX-users] ICE82 Warnings from duplicate sequence number created from <Directory> elements using Merge Modules Fair enough. So you are saying that when light builds the MSI it uses the mergemod.dll which when building assigns the sequence # for each of the merge modules? I would have thought that light built a meta tree of the sequences, files, directories, etc and then indexed them, cross-referenced them, whatever and fed it into the MSI that it was building.. I assumed this because when adding items into the various sequences we can specify our own id's, so it appeared that light would step in and handle the various merge modules and change the sequence #'s for conflicting sequence #'s. Thanks for the explanation. Jon Rob Mensching wrote: >Duplicate sequence numbers are not a problem as long as you don't need the >order of the CustomActions to be consistent. These type 51 CustomActions' >order relative to each other shouldn't be important. > >Also, this is not a light.exe issue. The behavior you are seeing is from >mergemod.dll provided by the Windows Installer SDK. > > > ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
Rob Mensching wrote:
>Light uses mergemod.dll only to merge in Merge Modules. It does that >processing very late because mergemod.dll operates on the final MSI output >not against the data structures that WiX uses everywhere else. The Type 51 >CustomActions that you are talking about are added by mergemod.dll. Thus >light (the Binder to be more specific) doesn't actually know about the data >added by the Merge Module (except the files which are accessible by a >specific API from mergemod.dll). > >Fundamentally, there is less flexibility when merging in Merge Modules. > > > I asked if I would be better off using Fragments and Include files instead of creating a custom Merge Module for components that need to used among different programs that we will be using (these components obviously contain DLL's that must obey the component rules). Thanks! Jon ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
|
Sorry, I missed that question. Personally, I always recommend breaking your
setup code into as many Fragments that make sense. Then build those Fragments into MSI files or Merge Modules as appropriate for your redistribution needs. Fragments are the most flexible way to break your setup code into reusable pieces. -----Original Message----- From: Jon Brandenburg [mailto:[hidden email]] Sent: Friday, September 16, 2005 9:45 AM To: [hidden email] Cc: Stefan Krueger; [hidden email] Subject: Re: [WiX-users] ICE82 Warnings from duplicate sequence number created from <Directory> elements using Merge Modules Rob Mensching wrote: >Light uses mergemod.dll only to merge in Merge Modules. It does that >processing very late because mergemod.dll operates on the final MSI output >not against the data structures that WiX uses everywhere else. The Type 51 >CustomActions that you are talking about are added by mergemod.dll. Thus >light (the Binder to be more specific) doesn't actually know about the data >added by the Merge Module (except the files which are accessible by a >specific API from mergemod.dll). > >Fundamentally, there is less flexibility when merging in Merge Modules. > > > I asked if I would be better off using Fragments and Include files instead of creating a custom Merge Module for components that need to used among different programs that we will be using (these components obviously contain DLL's that must obey the component rules). Thanks! Jon ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ WiX-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/wix-users |
| Powered by Nabble | Edit this page |
