Hi! I've been trying to create one MSI package with many features and compontents which should be then custom modified for each of our custommers.
Let's say we have: - Feature_1 containing -- BaseComponents_1 -- BonusComponents_1 - only installed based on Condition - Feature_2 -- BaseComponents_2 -- BonusComponents_2 - only installed based on Condition For our regular customers we deliver the BaseComponents for each of the installed Features. But some Customers paid more and are obliged to get the BonusComponents. Then I'd like to modify their Base installation and add the BonusComponents to already installed Product. (this system is no means of piracy protection - it just helps to lower disk costs for regular customers) This solution (posted below) works when the MSIs are installed on a clean system, but when the regular MSI is installed and then I try to use repair feature running the modified MSI it doesn't install the "new" components. I've tried setting the Transitive attribute, but it didn't help. msiexec /f withbonus.msi * Question: Is there a way to reevaluate component condition on repair? Is there any other way to make this work? Does anybody has any idea, how to accomplish this? (there may be more "Bonus" features and associated properties and each customer requires only his to be installed) Small idea: uninstall the product and reainstall with new settings - then I need to remember old settings and list of installed features and bonus components, which I don't know how to do. My current solution is something like this: <!-- this property gets modified to value 1 in Orca to create second installation installing the whole product --> <Property Id="InstallBonus" Value="0" /> <Feature Id="Feature_1" Title="MyApp1" Description="MyApp1 description" Level="1"> <Component Id="MyApp1.exe" Guid="..."> <File Id="MyApp1.exe" KeyPath="yes" Source="$(var.SourceDir)\MyApp1.exe" /> </Component> <!-- component Bonus1.dll should be installed only when InstallBonus property is set --> <Component Id="Bonus1.dll" Guid="..." Transitive="yes"> <File Id="Bonus1.dll" KeyPath="yes" Source="$(var.SourceDir)\Bonus1.dll" /> <Condition>InstallBonus> 0</Condition> </Component> </Feature> <Feature Id="Feature_2" Title="MyApp2" Description="MyApp2 description" Level="1"> <Component Id="MyApp2.exe" Guid="..."> <File Id="MyApp2.exe" KeyPath="yes" Source="$(var.SourceDir)\MyApp2.exe" /> </Component> <!-- component Bonus2.dll should be installed only when InstallBonus property is set --> <Component Id="Bonus2.dll" Guid="{4C7436D3-94B8-4C05-9CE1-43FD692C50AD}" Transitive="yes"> <File Id="Bonus2.dll" KeyPath="yes" Source="$(var.SourceDir)\Bonus2.dll" /> <Condition>InstallBonus> 0</Condition> </Component> </Feature> Thank you Ondrej Zarevucky ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp as they present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users