Mergemod.dll doesn't like trying to merge rows with identical primary keys 
(even if they are really supposed to be the same thing.  Here's some log output 
since you asked for it :)

I created my two merge modules, then I ran:
Orca.exe -f ProductFeature -m DriverMergeModule1.msm -l merge.log -c Test.msi

I checked Test.msi and merge.log and sure enough, DriverMergeModule1.msm was 
successfully merged.

Then I deleted merge.log and ran:
Orca.exe -f ProductFeature -m DriverMergeModule2.msm -l merge.log -c Test.msi


Here's some snippets from the merge.log:
Opened MSI Database: Test.msi
Opened Merge Module: DriverMergeModule2.msm
...
Merging Table: Binary
   o Merging row: DIFxApp.dll.B913F2A8_9BB5_40E4_9D7E_2541BC55A38D
   o Merging row: DIFxAppA.dll.B913F2A8_9BB5_40E4_9D7E_2541BC55A38D
...
Merging Table: CustomAction
   o Merging row: MsiProcessDrivers
>> Error: Failed to merge Row: MsiProcessDrivers into Table: CustomAction
   o Merging row: MsiInstallDrivers
>> Error: Failed to merge Row: MsiInstallDrivers into Table: CustomAction
   o Merging row: MsiUninstallDrivers
>> Error: Failed to merge Row: MsiUninstallDrivers into Table: CustomAction
   o Merging row: MsiRollbackInstall
>> Error: Failed to merge Row: MsiRollbackInstall into Table: CustomAction
   o Merging row: MsiCleanupOnSuccess
>> Error: Failed to merge Row: MsiCleanupOnSuccess into Table: CustomAction
...
>> Error: Merge conflict in Database Table: `InstallExecuteSequence`  - Action: 
>> `MsiProcessDrivers`
>> Error: Merge conflict in Database Table: `InstallExecuteSequence`  - Action: 
>> `MsiCleanupOnSuccess`
>> Error: Merge conflict in Database Table: `CustomAction` & Module Table: 
>> `CustomAction` - Row(s): `MsiProcessDrivers`
>> Error: Merge conflict in Database Table: `CustomAction` & Module Table: 
>> `CustomAction` - Row(s): `MsiInstallDrivers`
>> Error: Merge conflict in Database Table: `CustomAction` & Module Table: 
>> `CustomAction` - Row(s): `MsiUninstallDrivers`
>> Error: Merge conflict in Database Table: `CustomAction` & Module Table: 
>> `CustomAction` - Row(s): `MsiRollbackInstall`
>> Error: Merge conflict in Database Table: `CustomAction` & Module Table: 
>> `CustomAction` - Row(s): `MsiCleanupOnSuccess`

Total merge conflicts: 7

Closed Merge Module.
> Warning: Changes were not saved to MSI Database.
Closed MSI Database.



-Ari



-----Original Message-----
From: Rob Mensching [mailto:[EMAIL PROTECTED]
Sent: Thursday, November 06, 2008 1:32 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] WixDIFxAppExtension and MergeModules

If the rows are duplicate, I thought mergemod.dll would let them through.  Is 
it more accurate to say that the DIFxApp actions Id's have been modularized and 
that is colliding?

Can you maybe share out a merge.log that shows the merge problems?

-----Original Message-----
From: Moradi, Ari [mailto:[EMAIL PROTECTED]
Sent: Thursday, November 06, 2008 11:16
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] WixDIFxAppExtension and MergeModules

Hi folks,

I'm having a problem with the WixDIFxAppExtension when I'm using it in merge 
modules, and I'm wondering if someone can offer me a simpler workaround than 
what I'm currently planning on doing :)

The problem is caused when we try to build two different merge modules using 
WIX (v3.0.4624.0) that include  drivers and then include both those merge 
modules in one MSI.

Both merge module projects link with difxapp_<platform>.wixlib, which adds the 
DIFx custom actions in the merge module custom action table: MsiProcessDrivers, 
MsiInstallDrivers, etc.

When those two merge modules are then merged into the same MSI, we obviously 
get duplicate row errors and the merge fails.

My hope would really be that if WIX builds a merge module using 
WixDifxAppExtension, instead of adding the DIFx custom actions directly if it 
instead would add a ModuleDependency on the DIFxApp merge module.  Then we 
could merge multiple merge modules that all depend on DIFxApp, and then the 
DIFxApp merge module would be merged in too to get the custom actions.  But 
that's not what it does, so I'm looking for a workaround...

One option we have is to build wixlibs instead of merge modules, but since I'm 
not guaranteed that consumers of our merge modules are going to use WIX (they 
might be using InstallShield) that doesn't really work well for our team.

The other option I think I have is that instead of using WixDIFxAppExtension, 
I'll add a <CustomTable
Id="MsiProcessDrivers">... and "manually" add the rows I need to the table, and 
then add the Dependency on the DIFxApp merge module too.  The problem here is 
that every merge module we create has to add the CustomTable, and we have to go 
look up the column definitions again, and then we have to look up the 
documentation to figure out the bit values we need to set in the Flags column.  
I'd like a way where we get to continue to use the nice xml schema and can 
still merge everything successfully.

I've also considered modifying the WIX DIFxAppExtension source to do what I 
want too...  but my workaround is easy enough to do, and since I'm unfamiliar 
with the WIX source, I figure it's a lot faster for me to work around the 
problem for now.

Any other ideas?

Thanks,

-Ari

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to