R – How do we create an installer than doesn’t require administrator permissions

administratorinstallationwindows-vistawindows-xp

When creating a setup/MSI with Visual Studio is it possible to make a setup for a simple application that doesn't require administrator permissions to install? If its not possible under Windows XP is it possible under Vista?

For example a simple image manipulation application that allows you to paste photos on top of backgrounds. I believe installing to the Program Files folder requires administrator permissions? Can we install in the \AppData folder instead?

The objective is to create an application which will install for users who are not members of the administrators group on the local machine and will not show the UAC prompt on Vista.

I believe a limitation this method would be that if it installs under the app data folder for the current user other users couldn't run it.

Update:

Can you package a click once install in a normal setup.exe type installer? You may ask why we want this – the reason is we have an installer that does a prereq check and installs anything required (such as .NET) and we then downloads and executes the MSI. We would like to display a normal installer start screen too even if that's the only thing displayed. We don't mind if the app can only be seen by one user (the user it's installed for).

Best Answer

ClickOnce is a good solution to this problem. If you go to Project Properties > Publish, you can setup settings for this. In particular, "Install Mode and Settings" is good to look at:

  • The application is available online only -- this is effectively a "run once" application
  • The application is avaiable offline as well (launchable from Start Menu) -- this installs the app on the PC

You don't actually have to use the ClickOnce web deployment stuff. If you do a Build > Publish, and then zip up the contents of the publish\ folder, you can effectively distribute that as an installer. To make it even smoother, create a self-extracting archive from the folder that automatically runs the setup.exe file.

Even if you install this way, if you opt to use it, the online update will still work for the application. All you have to do is put the ClickOnce files online, and put the URL in the project's Publish properties page.