Hi guys,
I have some problems regarding default folders, per-user/par-machine
installations and Vista compatibility in a "complicated scenario" with my setup
and I have not found yet all the ways to handle them. I will describe my issues
here in hope of help, trying to use some simple example in order to make things
as clear as possible.
I have an application (call "MyApp") which is more likely an addin to another
application (called "HostApp"). MyApp consists of one exeutable (MyApp.exe) one
DLL (MyApp.dll), one desktop shortcut to the exe, two data files (in.dat - all
users use MyApp to read data from it, and out.dat - a file in which every user
should write different things using MyApp and some reg keys set to the pathes
where the dll and dat files are installed.
HostApp has x86 and x64 builds and runs on Win2k, WinXP, WinXP x64, Vista and
Vista x64. HostApp may also have different versions installed on the same
machine running independent (including here both x86 and x64 versions on the
same Win64 OS).
Now, I have the following requirements:
1. MyApp is required to run on all versions of HostApp under all supported
Windows versions. (For this reason MyApp.exe multiplies into MyApp32.exe and
MyApp64.exe and MyApp.dll multiplies MyApp32.dll and MyApp64.dll).
2. MyApp must run under all HostApp versions installed in an OS. Given this
requirement MyApp Setup should install:
- on x86 OS - MyApp32.exe, MyApp32.dll, in.dat, out.dat + shortcut and
reg keys
- on x64 OS - MyApp64.exe, MyApp32.dll, MyApp64.dll (MyApp64.exe
determines in interaction with HostApp which DLL should be loaded into
HostApp), in.dat and out.dat + shortcut and regkeys.
This task is accomplished by creating two msi-s targeting the two platforms
and installing the binary files, and a bootstraper to decide which msi should
run (not to force the user to execute the right msi himself, and of course
because there are more other things which make the bootstraper required).
- the Win32 msi installs the MyApp32 on Win32
- the x64 msi installs MyApp32 and MyApp64 on Win64 - I am forced to do
this - I must not ask the user to install the program twice on the same OS (in
order to have both MyApp32 and MyApp64 running).
2. MyApp is required to pass the Certified for Windows Vista tests. What
concerns me the most in this moment is the Test Case number 15 - "Verify
applications installs to correct folders by default" which states that:
a) The application must only install to a subdirectory of Program Files or
user's AppData directories.
b) Per-machine installs must install to Program Files by default.
c) Per-machine installs have no correct data user AppData directory
because eleveation may be needed; user data must be written at first run and
not during install.
d) Default install directories are:
a. Native x86 and x64 applications (this is the case for MyApp on
Win32 and MyApp - x64 version on Win64):
i. ProgramFiles - %ProgramFiles%
ii. User's AppData - %APPDATA%
iii. ProgramData - %ALLUSERSPROFILE%
b. Win32 applications on x64 (this is the case for MyApp32 on
Win64):
i. ProgramFiles - %ProgramFiles(x86)%
ii. AppData - %APPDATA%
iii. ProgramData - %ALLUSERSPROFILE%
3. MyApp should support per-user/per-machine installation based on user's
choice (the installation can be performed by an Administrator - MyApp does not
have (yet) a requirement to be installed by standard users).
My main questions are:
- is it possible to support per-user/per-machine installations for my case
with one msi ? I'm asking this because in.dat and out.dat can have different
content based on some user setting in bootstraper and they should install with
the same name and in the same locations regardless the bootstraper settings -
that led me already to 11 msi (11 possible settings) x 2 (due to x86 and x64),
and I'm very reticent to multiply the number again for the per-user/per-machine
setting.
- where shoud I install my in.dat and out.dat files (in the scenarios
desribed above)?
- how should I determine based on per-user/per-machine if I should install
the .dat (especially out.dat) files or only to advertise them (so they should
install on first run) - in order to respect points b) and c) of the Test Case 15
- if I am required to install in ProgramData - how should I do it on XP for
example - should I use directly the "C:\Documents and Settings\All Users" or am
I supposed to go in "C:\Documents and Settings\All Users\Application Data" as
my HostApp, for example, does ? Or is it free to my choice ? I know this
question should be asked to people who wrote the test scenario but maybe you
can help.
- how exactly can I accoplish point c) of the Test Case number 15 in WIX ?
Can you help with some usefull example or links about how the advertising
should be implemented ?
Thanks for your patience in reading this extremly big story. All your help is
appreciated.
-------------------------------------------------------------------------
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