Thanks a lot, Blair! You were absolutely right! If I use MsiSetProperty, I can see in the log file that the property is set within my custom action. Otherwise (in case of MsiViewModify) the property doesn't get set and it is set later to the default value - in my case, the drive root which has the most of free space.
Thanks again for your help! -- Yan -----Original Message----- From: Blair [mailto:os...@live.com] Sent: Wednesday, August 19, 2009 12:11 AM To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] MsiViewModify vs. MsiSetProperty A debug verbose log may tell you when different properties were set, so that is a good start. It may depend on your particular version of MSI, etc. The directory table itself is resolved during CostFinalize, but any properties it makes use of may have been set before then (such as TARGETDIR/ROOTDRIVE/ProgramFilesFolder/etc.) and would come from the session properties instead of directly from the property table. I don't know when the Property table is processed (which would insert each non-empty entry into the current session). It is possible that table is processed very early on, which would mean that adding temporary rows to the Property table would only influence changes to a different sequence (e.g. from UI to Execute). However, not all session values come from the Property table. -----Original Message----- From: Yan Sklyarenko [mailto:y...@sitecore.net] Sent: Tuesday, August 18, 2009 1:52 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] MsiViewModify vs. MsiSetProperty Thanks for the answer. The custom action was placed before CostFinalize, I didn't change this position. >> which is gradually built up a query at a time I'm not sure I understand this... could you please explain? >> It is all a matter of your position in your sequence I'm populating the Directory table before CostFinalize, which should be ok I think - the directories are not resolved by this time, right? -- Yan ________________________________ From: Blair [mailto:os...@live.com] Sent: Tue 8/18/2009 23:39 To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] MsiViewModify vs. MsiSetProperty Changing the database view will change all future queries into that database. Changing the current property set (which is gradually built up a query at a time) will change all future uses of that property. It is all a matter of your position in your sequence (and where the actions before and after you are getting their data from). -----Original Message----- From: Yan Sklyarenko [mailto:y...@sitecore.net] Sent: Tuesday, August 18, 2009 1:13 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] MsiViewModify vs. MsiSetProperty Hello MSI gurus, I've faced with an interesting issue, which is now a kind of academic interest for me. I had to modify the MSI tables from an immediate custom action using DTF. I was using View.Modify method with InsertTemporary option, as it is the only way to "change" the MSI database at runtime. All the tables required were addressed by this technique, including Property. However, I mentioned that my custom action behaves incorrectly. I've been setting a property containing the disk root (e.g. D:\) and then referenced that property from Directory table. But in the log file that property fell back to a disk root with the most of free space (as if the TARGETDIR wasn't set). When I changed the property set operation from View.Modify to session["PROP_NAME"] = "D:\", everything started working correctly. So, my question is what's the difference between MsiViewModify and MsiSetProperty? And are there any recommendations where to use each? Thank you. -- Yan ------------------------------------------------------------------------ ---- -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ---- -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------ ------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users