In article <414331.22649...@web59815.mail.ac4.yahoo.com>, "little.forest" <little.for...@ymail.com> writes:
> Hmm, can you tell me how to use AppSearch to "locate folders"? Use <Property> with a nested <DirectorySearch> > "Use type 19 CA to set properties" [...] As pointed out by others, I was wrong in saying type 19, its type 51 (set property) as already mentioned. Not every CA requires a DLL or EXE -- only DLL/EXE CAs need them. WiX exposes a set property CA with <SetProperty>. You can reuse your upgrade_settings.exe program, but you may find that its more trouble than its worth because this means creating a custom action in code and interacting with this external utility to set properties in the MSI. You might find it easier to have this upgrade settings utility invoke msiexec on your MSI with command-line arguments to set properties for the installation, essentially using the upgrade settings utility as a bootstrapper. > And the last question, "to use condition on events to determine dialogs shown in a wizard", is it some like this? > <Publish Dialog="MyDlg" Control="Back" Event="NewDialog" Value="M yInstallDirDlg" Order="1">NOT Installed and and REALLY_NEED_UPGRADE_SETTING</Pu blish> Yes, but be careful about conditions and the fact that you need to populate those conditions on the Next button *and* the back button *and* you need to make sure that the conditions are setup properly so that dialog transitions are managed properly. Additionally, you can't have more than one NewDialog control event on a button, even if the conditions are mutually exclusive. You'll get weird behavior if you try this. The way to manage complex dialog transitions is to use a property to hold the name of the dialog you wish to display and conditionally set this property to the right value. Then transition to the dialog named by the property: For instance, suppose the transition table for the Back button on MyDlg looks like this: Target Dialog Condition Dialog1 NOT A AND NOT B Dialog2 A AND NOT B Dialog3 A AND B Dialog4 NOT A AND B The following <Publish> events show how to implement this logic with a single NewDialog event on the Back button of MyDlg: <!-- go to Dialog1 by default --> <Publish Dialog="MyDlg" Control="Back" Property="BackDialog" Value="Dialog1"/> <Publish Dialog="MyDlg" Control="Back" Property="BackDialog" Value="Dialog2">A AND NOT B</Publish> <Publish Dialog="MyDlg" Control="Back" Property="BackDialog" Value="Dialog3">A AND B</Publish> <Publish Dialog="MyDlg" Control="Back" Property="BackDialog" Value="Dialog4">NOT A AND B</Publish> <Publish Dialog="MyDlg" Control="Back" Event="NewDialog" Value="[BackDialog]"/> Note that the first set property event has no condition, guaranteeing that the transition is always well defined. You can also null out the property and then take the NewDialog transition only when the property is non-empty: <!-- go to Dialog1 by default --> <Publish Dialog="MyDlg" Control="Back" Property="BackDialog" Value="{}"/> <Publish Dialog="MyDlg" Control="Back" Property="BackDialog" Value="Dialog1">NOT A AND NOT B</Publish> <Publish Dialog="MyDlg" Control="Back" Property="BackDialog" Value="Dialog2">A AND NOT B</Publish> <Publish Dialog="MyDlg" Control="Back" Property="BackDialog" Value="Dialog3">A AND B</Publish> <Publish Dialog="MyDlg" Control="Back" Property="BackDialog" Value="Dialog4">NOT A AND B</Publish> <Publish Dialog="MyDlg" Control="Back" Event="NewDialog" Value="[BackDialog]">BackDialog</Publish> -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://legalizeadulthood.wordpress.com/the-direct3d-graphics-pipeline/> Legalize Adulthood! <http://legalizeadulthood.wordpress.com> ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users