So I assume you are creating a setup & deployment project, and not using the Publish tab under your main project to deploy.
What other programs are installed in Vista that write data in the ProgramFiles? Not any commercial ones, I can guarantee you. Even Adobe (second in the software industry only to Microsoft) writes their cache and temp files and so on to an Adobe folder it creates under MyDocuments instead of in ProgramFiles like it used to.
You can disagree with my comments, but you will have problems with Vista. If the user has it turned on, Vista may allow data redirection (also known as data virtualization) that will basically put the files under the user's profile whether you like it or not. IF the user does not have that capability turned on, you will have problems. Also, Microsoft does not guarantee that functionality to be present in future versions of Windows.
Setting the application to Full Trust and running it as an Administrator basically goes against the guidelines of developing for Vista, which is to be able to run your application with the fewest permissions possible.
Here's some fun reading for you:
http://technet.microsoft.com/en-us/magazine/cc160980.aspx
Here's a highlight:
With so much emphasis on running as a standard user, there’s some concern about whether common LOB (line-of-business) applications will function correctly. To address this concern, the data redirection feature facilitates application compatibility. Data redirection, also known as data virtualization, provides a driver for the file system and registry that will redirect writes targeted at certain protected locations, such as HKEY_LOCAL_MACHINE\Software or %ProgramFiles%, to the user’s profile.
For example, if a member of the Users group is logged onto a machine and runs an application that writes a log file back to the Program Files directory, this write will fail. Why? Because the access control list (ACL) on the Program Files directory does not allow standard users to write to that location. When the data redirection file system driver receives the failed return code from this write, it redirects the write to a copy of the file made in the virtual store, a location in the user’s profile. An application that is marked with a run level in its manifest or that is a natively compiled 64-bit app is assumed to not require virtualization, so data redirection is disabled for that app. Windows binaries are marked with a run level, thereby disabling virtualization, and it is a requirement of the Windows Vista logo program that certified apps can run without data virtualization."
Here's Microsoft's info on UAC in Vista, the whys and wherefores:
http://msdn.microsoft.com/en-us/library/bb530410.aspx
There are guidelines regarding where to store the data files and such for Windows Vista available somewhere on Microsoft's site. I read them over a year ago when Vista first came out, and following them prepared me for deploying an application, completely with database, to thousands of users successfully. You might try searching for "vista" and "guidelines" and see if you can track them down, or maybe someone from MSFT will post the link.
Sometimes it's easier to swim with the current rather than try to either stay in the place you've been forever, or even swim upstream... But feel free to go your own way, and good luck with that.
RobinS.
GoldMail.com