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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users