I've heard that argument before ( configuration data is a pain ) and I 
disagree.  When you take that approach it is still a real pain to deploy an 
application with large systems like SMS.  You end up with an MSI that can 
`install` an application, but to actually get it configured and usable is 
different from one application to another since the functionality is 
externalized and unique for each app.
   
  Take MSDE for example.... you can pass a bunch of public properties to it and 
deploy it silently and actually get it working.   Now try doing the same thing 
with MySQL.  You can install it silently, but to actually create and configure 
and instance requires running a GUI wizard that doesn't have a silent mode.
   
  When dealing with dynamic configuration data, I always implement a pattern 
that preserves attribute data and sets an order of priority like:
   
  ( Greatest Priority to least priority )
  1) Information entered during UI sequence ( if run in Full UI mode )
  2) Information passed as a public property ( so that an app can be configured 
or reconfigured.
  3) The current state of configuration ( for use during repair or upgrades 
where the configuration is not respecified )
  4) A default value  ( for UI defaulting and silent initial installation where 
a value was not specified.
   
  When properly implemented, the user experience ( interactive and silent ) is 
very robust and not difficult or unreliable.

Rob Mensching <[EMAIL PROTECTED]> wrote:
        v\:* {behavior:url(#default#VML);}  o\:* {behavior:url(#default#VML);}  
w\:* {behavior:url(#default#VML);}  .shape {behavior:url(#default#VML);}        
        Yes, what you have is a very non-optimal application design for 
declarative installation.  There was a thread a few days ago about static 
configuration vs. dynamic configuration.  Static configuration (including 
application defaults) should be in the installation package.  Dynamic 
configuration (such as user settings that are modified away from the defaults) 
should not be in the install (to prevent repair, upgrade, patch from 
overwriting the user data).
   
  Your last question boils down to “How do I change the static information such 
that (some part of) the dynamic information is forced to a new value?”  The 
only place that can truly solve that problem is application code.  For example, 
if you’re writing settings to the per-user locations and you have multiple 
users, the application is going to have to migrate the user settings 
appropriately for each user.  If you put the migration code in the install, 
then the migration would only happen for the user that did the install.
   
  Ultimately, the world gets much easier to deal with if you separate static 
and dynamic state.
   
      From: Rennie Petersen [mailto:[EMAIL PROTECTED] 
Sent: Sunday, June 10, 2007 1:33 PM
To: Christopher Painter; Rob Mensching; wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] Avoiding registry entries being modified with 
REINSTALL=ALL REINSTALLMODE=vos


   
  Rob and Christopher, thanks.
   
  Rob, you say "played games like this". You seem to be implying I'm doing 
something in a non-standard or non-optimal way? If so, please let me know what 
a more standard way would be to do this.
   
  The reason I do not want to change the registry entries is that these 
registry entries are used by the application to store changes in the 
configuration. For example, one registry entry is used to indicate the language 
to be used by the running application. It is initialized to Danish or English 
at install time, depending on Windows locale info or a value entered via the 
UI. But later, the user may change his/her mind and specify a different 
language. An install of a minor upgrade should preserve the new value rather 
than re-initialize it, otherwise the users will get upset since they have to 
re-change the language once again.
   
  Maybe this is poor application design? The application should accept 
installation values in one set of registry entries and save running values 
elsewhere? 
   
  But if I do it that way, how should one tell the application that you really 
do want it to change the values to new installation values when that is 
advantageous, for example a re-install to force a change to Swedish when that 
language support is added and most of the users at this site are Swedish?
   
  Rennie
   
     
    
---------------------------------
  
  From: Christopher Painter [mailto:[EMAIL PROTECTED] 
Sent: 10. juni 2007 20:07
To: Rob Mensching; Rennie Petersen; wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Avoiding registry entries being modified with 
REINSTALL=ALL REINSTALLMODE=vos
    The description of this is a Small Update.  Typically when I hear of 
someone not wanting to write to the registry during an upgrade it is because 
they are having negative side effects from the fact that properties don't 
persist in the cached MSI and they are trying to work around the symptom 
instead of addresing the cause.

     

    Rennie, am I guessing your situation correctly?   Are you using [FOO] in 
the Registry table and seeing some default or null value get written to the 
registry during an upgrade instead of the value that was written during the 
initial installation?

     

    If so, generally you want to use an AppSearch to retrieve the value of FOO 
from the registry so that if the component reinstalls, it'll be written back 
out correctly to the registry.

Rob Mensching <[EMAIL PROTECTED]> wrote:

      I haven’t played games like this with the Windows Installer but my 
understanding is that if the Component believes it needs to be repaired (the 
KeyPath is being updated) then the whole Component gets written.

     

    You might (although I wouldn’t really recommend it) be able to condition 
the registry related actions.

     

    Why do you need to not have registry stuff written?  

     

     

        From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rennie 
Petersen
Sent: Friday, June 08, 2007 3:37 AM
To: Rennie Petersen; wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Avoiding registry entries being modified with 
REINSTALL=ALL REINSTALLMODE=vos



     

    No answers. :-(

     

    Of course, this is not WiX specific, but I'm wondering if someone could 
help me anyway.

     

    To elaborate, the situation is that in my MSI I have not written any 
<Upgrade element, nor any <RemoveExistingProducts element.

     

    The <Product element contains the same Version= tag (Version="4.1.1.0") and 
the same UpgradeCode=guid tag as used when the prior install was done.

     

    On the msiexec.exe command line I specify REINSTALL=ALL and 
REINSTALLMODE=vos. I'm not specifying REINSTALLMODE=vomus because I do not want 
the registry entries to be modified. 

     

    But the registry entries are being modified anyway.

     

    Any idea of how I can prevent this?

     

    Thanks.

     

    Rennie

     

       

    
---------------------------------
  
    From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rennie 
Petersen
Sent: 6. juni 2007 19:18
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Avoiding registry entries being modified withREINSTALL=ALL 
REINSTALLMODE=vos

    I'm doing a reinstall, but I don't want the existing registry entries to be 
modified. 

    So instead of specifying REINSTALLMODE=vomus I specify REINSTALLMODE=vos. 

    But the registry entries still get reset to the values in my MSI. 

    Is it possible to avoid this? 

    Thanks. 

    Rennie 

  -------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
   
    
---------------------------------
  
  You snooze, you lose. Get messages ASAP with AutoCheck
in the all-new Yahoo! Mail Beta. 



 
---------------------------------
It's here! Your new message!
Get new email alerts with the free Yahoo! Toolbar.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to