"rule of thumb" software install

R

Rick Allison

I'm not sue this is the right forum, if not please direct me to the correct
one.

What is the rule of thumb for where to install software in Vista?

I'm a software developer. I have an installshield script that installs my
software in c:\program files\my program file

With Vista I can still do that but I have an MS Access database and the
application needs write rights.

Since c:\program file\my program file is now protected in Vista - What is
the right place?
 
B

Bruce Chambers

Rick said:
I'm not sue this is the right forum, if not please direct me to the
correct one.

What is the rule of thumb for where to install software in Vista?

I'm a software developer. I have an installshield script that installs
my software in c:\program files\my program file

With Vista I can still do that but I have an MS Access database and the
application needs write rights.

Since c:\program file\my program file is now protected in Vista - What
is the right place?


Start here:

Develop for Windows 7 and Windows Vista
http://msdn.microsoft.com/en-us/windows/default.aspx


--

Bruce Chambers

Help us help you:


http://support.microsoft.com/default.aspx/kb/555375

They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety. ~Benjamin Franklin

Many people would rather die than think; in fact, most do. ~Bertrand Russell

The philosopher has never killed any priests, whereas the priest has
killed a great many philosophers.
~ Denis Diderot
 
J

Jon Wallace

Hi Rick,

The answer to this really comes down to 2 things - what is application data
and what is user data. Application data would be the runtime code that
basically the user needs read (or read / execute) rights on whereas user
data is data the application uses that is changed, lets say by the user.

Generally speaking, application data should exist in a shared location on a
machine, so \Program Files\Vendor\Product on generic 32BIT machines,
\Program Files\Vendor\Product on 64BIT machines if your application is a
64BIT application and \Program Files (x86)\Vendor\Product on 64BIT machines
if your application is 32BIT.

In terms of user data (so your database in this case), if each user has
their own, then somewhere like \Users\Username\AppData\Local\Vendor\Product
if the data is only ever going to be used by that application or
\Users\Username\Documents if you want the user to be able to open it with
other things. If the data is shared between different users on the machine,
then \Users\Public is a good location or \ProgramData\Vendor\Product to be
consistent.

I would also look to use environment variables to obtain the relevent paths,
to ensure the same location regardless of drive configuration etc...

For Program Files use %ProgramFiles% (so %ProgramFiles%\Vendor\Application)
For Program Data use %ProgramData% (so %ProgramData%\Vendor\Application)
For the user's location use %USERPROFILE% (so %USERPROFILE%\Documents or
%USERPROFILE%\AppData\Local\Vendor\Product)

Be carefull with the registry too - ensure you save application generic
settings to HKEY_LOCAL_MACHINE whereas user-configurable settings to
HKEY_CURRENT_USER.

These are my views anyway - hopefully they will at least put you on the
right path.

Best Regards,
Jon

www.insidetheregistry.com
 
R

Rick Allison

Jon,

Thank you. This helps a lot.

Rick

Jon Wallace said:
Hi Rick,

The answer to this really comes down to 2 things - what is application
data and what is user data. Application data would be the runtime code
that basically the user needs read (or read / execute) rights on whereas
user data is data the application uses that is changed, lets say by the
user.

Generally speaking, application data should exist in a shared location on
a machine, so \Program Files\Vendor\Product on generic 32BIT machines,
\Program Files\Vendor\Product on 64BIT machines if your application is a
64BIT application and \Program Files (x86)\Vendor\Product on 64BIT
machines if your application is 32BIT.

In terms of user data (so your database in this case), if each user has
their own, then somewhere like
\Users\Username\AppData\Local\Vendor\Product if the data is only ever
going to be used by that application or \Users\Username\Documents if you
want the user to be able to open it with other things. If the data is
shared between different users on the machine, then \Users\Public is a
good location or \ProgramData\Vendor\Product to be consistent.

I would also look to use environment variables to obtain the relevent
paths, to ensure the same location regardless of drive configuration
etc...

For Program Files use %ProgramFiles% (so
%ProgramFiles%\Vendor\Application)
For Program Data use %ProgramData% (so %ProgramData%\Vendor\Application)
For the user's location use %USERPROFILE% (so %USERPROFILE%\Documents or
%USERPROFILE%\AppData\Local\Vendor\Product)

Be carefull with the registry too - ensure you save application generic
settings to HKEY_LOCAL_MACHINE whereas user-configurable settings to
HKEY_CURRENT_USER.

These are my views anyway - hopefully they will at least put you on the
right path.

Best Regards,
Jon

www.insidetheregistry.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top