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