Yeah, .wixlibs have more features in them that make sharing compiled code much 
better than Merge Modules.  You picked up on my hint.  <smile/>

-----Original Message-----
From: Moradi, Ari [mailto:[EMAIL PROTECTED]
Sent: Tuesday, December 09, 2008 16:11
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] WixDIFxAppExtension and MergeModules

...  but that's one of the issues that I'm dealing with -- I can't guarantee 
everyone is using WiX :)

And I kindof think that if WiX is building a merge module, it wouldn't be 
unreasonable to assume that whoever gets that merge module won't be using WiX 
(or at least might not).  Since if you could guarantee that everyone's using 
WiX, y'all seem to recommend wixlibs instead of merge modules ;)

-Ari


-----Original Message-----
From: Rob Mensching [mailto:[EMAIL PROTECTED]
Sent: Tuesday, December 09, 2008 5:15 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] WixDIFxAppExtension and MergeModules

For redisting to other... probably.  Unless everyone is using the WiX toolset.  
<smile/>

-----Original Message-----
From: Moradi, Ari [mailto:[EMAIL PROTECTED]
Sent: Tuesday, December 09, 2008 15:05
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] WixDIFxAppExtension and MergeModules

There actually are differences in the rows, since the binary table entries that 
get added to the merge module get the merge module ID appended to them.

As a test, I manually modified the Binary table entries and removed the merge 
module ID, so that those rows are completely identical between the two merge 
modules.  Then I tried to merge both again.  This time, I didn't see the binary 
table errors (so your suspicion that identical rows are ignored is correct).  
So, changing those entries so that they don't get modularized seems like it 
would help (a little).  However, I still see the errors when it tries to merge 
the ModuleInstallExecuteSequence tables of the two merge modules.  The rows are 
completely identical, but it doesn't like the same action coming from different 
merge modules.  So the second merge fails with the following log lines:

<log>
  Merging Sequence Table: ModuleInstallExecuteSequence into Database Table: 
InstallExecuteSequence
  Base Action InstallFiles in InstallExecuteSequence table already exists in 
MSI. Using MSI action.
  Base Action InstallFinalize in InstallExecuteSequence table already exists in 
MSI. Using MSI action.
  Base Action RemoveFiles in InstallExecuteSequence table already exists in 
MSI. Using MSI action.
  Placing action MsiProcessDrivers after InstallFiles
  Placing action MsiCleanupOnSuccess after InstallFinalize
  >> Error: Failed to merge Action: MsiProcessDrivers into Table: 
InstallExecuteSequence
  >> Error: Failed to merge Action: MsiCleanupOnSuccess into Table: 
InstallExecuteSequence

  ...

  >> Error: Merge conflict in Database Table: `InstallExecuteSequence`  - 
Action: `MsiProcessDrivers`
  >> Error: Merge conflict in Database Table: `InstallExecuteSequence`  - 
Action: `MsiCleanupOnSuccess`
  Total merge conflicts: 2
</log>

I still think that the solution of creating a dependency on the DIFxApp merge 
module instead of including the DIFxApp wixlib in the merge module is a better 
solution...  What do you think?

-Ari



-----Original Message-----
From: Rob Mensching [mailto:[EMAIL PROTECTED]
Sent: Monday, December 01, 2008 5:53 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] WixDIFxAppExtension and MergeModules

Hmm, that really surprises me.  I thought that mergemod.dll was smarter than 
that.  There are no differences on those rows where the merge conflicts happen? 
 Hmm.

-----Original Message-----
From: Moradi, Ari [mailto:[EMAIL PROTECTED]
Sent: Thursday, November 06, 2008 11:59
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] WixDIFxAppExtension and MergeModules

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


-------------------------------------------------------------------------
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

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to