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