As I previously described in this blog post, Windows Installer will prompt users for elevation by default when running MSI-based setups on Windows Vista, but it is possible to opt out of this behavior by making some changes to your MSI. If you choose to opt out though, you need to make sure that none of the actions in your MSI will require elevation (such as installing files to the GAC, writing registry values under the HKEY_LOCAL_MACHINE hive, etc).
This week, I ran across an interesting blog post that provides step-by-step instructions and example syntax that can be used to create an MSI in WiX v3.0 that does not prompt for elevation on Windows Vista. This blog post can be found at this location:
The author of this blog post also describes options for supporting both a per-user install (that does not prompt for elevation) and a per-machine install (that does prompt for elevation). He demonstrates how to accomplish this within a single MSI, but points out some functional limitations that you will run into if you pursue this option. The recommended alternative is to create separate MSIs – one for per-user installations and the other for per-machine installations. Then you can use a bootstrapper setup.exe to determine at install time which MSI to install.
There is some really helpful information in this blog post, and I encourage setup developers who are interested in how to manage elevation prompts on Windows Vista to take a look at the example WiX code and documentation contained in this post.