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<http://us.rd.yahoo.com/evt=47959/*http:/advision.webevents.yahoo.com/mailbeta/newmail_html.html>
in the all-new Yahoo! Mail Beta.
-------------------------------------------------------------------------
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