User setup for Windows

Announced last release, the user setup package for Windows is now available on stable. Installing the user setup does not require Administrator privileges as the location will be under your user Local AppData (LOCALAPPDATA) folder. User setup also provides a smoother background update experience.

Download User Setup

If you are a current user of the system-wide Windows setup, you will be prompted to install user setup, which we recommend using from now on. Don't worry, all your settings and extensions will be kept during the transition. During installation, you will also be prompted to uninstall the system-wide setup.

Reference: https://code.visualstudio.com/updates/v1_26#_user-setup-for-windows

Answer from Surenthar Pitchai on Stack Overflow
🌐
Visual Studio Code
code.visualstudio.com › docs › setup › windows
Installing Visual Studio Code on Windows
1 week ago - Visual Studio Code is available for Windows through a user installer, a system installer, and a ZIP archive.
Top answer
1 of 5
95

User setup for Windows

Announced last release, the user setup package for Windows is now available on stable. Installing the user setup does not require Administrator privileges as the location will be under your user Local AppData (LOCALAPPDATA) folder. User setup also provides a smoother background update experience.

Download User Setup

If you are a current user of the system-wide Windows setup, you will be prompted to install user setup, which we recommend using from now on. Don't worry, all your settings and extensions will be kept during the transition. During installation, you will also be prompted to uninstall the system-wide setup.

Reference: https://code.visualstudio.com/updates/v1_26#_user-setup-for-windows

2 of 5
59

I installed the user version side-by-side with the system version with no problems. The basic differences between the two is that the system version installs on the file system like every other app. The user install is basically a click-once (or web installer) version that installs in the User folder of the machine.

The settings made to VS Code in the system version save for Everybody on the computer and the user version the settings are only for the user. I find that the behavior of the user version is a bit annoying for me because I have reasons to want to open multiple copies of VS Code at the same time and the user version only allows one instance. Otherwise, there's not really anything different between the two as far as I can tell.

Discussions

installation - Installer vs. zip or executable exe? - Stack Overflow
Since it wasn't very user-friendly ... e.g. a ZIP extractor installed (remember, this was before ubiquitous Internet), Windows programs began to be shipped with installers. You can think of these as basically portable versions of WinZIP whose sole purpose was to reassemble and extract a compressed file. These days, installers serve a number of other purposes: ... prompting the user for CD keys (though this is being phased out for many systems in favor of ... More on stackoverflow.com
🌐 stackoverflow.com
Should I use the User or System Installer?
I downloaded the default installer, which is the User Installer, but when I try to install it, it says: "This User Installer is not meant to be run… More on reddit.com
🌐 r/vscode
4
2
December 13, 2019
Installer vs. zip or executable exe?
Since it wasn't very user-friendly ... e.g. a ZIP extractor installed (remember, this was before ubiquitous Internet), Windows programs began to be shipped with installers. You can think of these as basically portable versions of WinZIP whose sole purpose was to reassemble and extract a compressed file. These days, installers serve a number of other purposes: ... prompting the user for CD keys (though this is being phased out for many systems in favor of ... More on exchangetuts.com
🌐 exchangetuts.com
2
501
July 19, 2026
What's the difference between VSCodium, VSCodiumSetup and VSCodiumUserSetup installation files?
What's the difference between VSCodium, VSCodiumSetup and VSCodiumUserSetup installation files for Windows? For example: VSCodium-x64-1.70.2.22230.msi VSCodiumSetup-x64-1.70.2.22230.exe VSCodiu... More on github.com
🌐 github.com
2
4
🌐
Quora
quora.com › What-is-the-difference-between-a-user-installer-and-a-system-installer
What is the difference between a user installer and a system installer? - Quora
Answer (1 of 2): User installer installs in your User folder and does not need Administrator privileges. System installer installs for all users on the system and needs Administrator privileges. Sagar Suba
Top answer
1 of 5
14

What you're really asking is:

How does an installer work?

A bit of background.

In the Before Times, man did not have such things as "installers." Software was run directly off of floppy disks (and none of that rigid 3.5" crap, I'm talking disks that flopped), like God intended.

Then came the first home computers with persistent hard drives. For the first time, it made sense to copy a program off a disk and have it stick around.

But programs still worked the way "portable" applications do today: you copied them as-is and ran them as-is.

Then operating systems began to get more complicated.

Windows introduced this notion of a registry: a central location where program and operating system configuration could be stored. Software authors began using this registry. Its arcane architecture and user-hostile editing utility (the infamous regedit.exe) made it the perfect place to store shareware information -- how many days you have left on your trial, for example.

This happened around the same time that programs began to be too large to fit -- uncompressed -- on a single floppy disk. A way was needed to split a program onto multiple disks. Since it wasn't very user-friendly to require the user to have e.g. a ZIP extractor installed (remember, this was before ubiquitous Internet), Windows programs began to be shipped with installers. You can think of these as basically portable versions of WinZIP whose sole purpose was to reassemble and extract a compressed file.

These days, installers serve a number of other purposes:

  • providing a convenient user interface
  • prompting the user to accept a click-through end-user license agreement (EULA)
  • prompting the user for CD keys (though this is being phased out for many systems in favor of digital distribution)
  • asking the user to register their software

and so on. They may also serve as DRM vehicles, validating CDs and decrypting data to prevent villainous individuals (yarr) from brrreakin' ye olde DMCA.

At their heart, they aren't any more complex than in the Windows 95 days -- a glorified unzip program.

Sidenote: Where does the installer get 5GB of data from 200MB of archives if not the Internet?

That's high, though there are plenty of ways you could get that compression ratio. Imagine a complex game whose world is defined in verbose XML -- that's readily compressible. You could even get that back in the old WinZIP days.

2 of 5
1

A zip file can only hold some files and then you unzip and get those files as is.

An installer however can be a very complicated program. It can create the needed files or folders structures, It can register the required dlls on your system, give you the options of the features that can be installed, Check your system for the compatibility and also be used as a wizard to guide you, step by step, to custom install you application.

🌐
Reddit
reddit.com › r/vscode › should i use the user or system installer?
r/vscode on Reddit: Should I use the User or System Installer?
December 13, 2019 - "This User Installer is not meant to be run as an Administrator. If you would like to install VS Code for all users in this system, download the System Installer instead..."
Top answer
1 of 2
4

If you have the choice of both; the installer typically just means that you get a nicer UI to choose the setup directory and some installation options, rather than having to use a seperate unzip utility and selectively remove the parts you don't want/need. Also, in the case of Windows programs an installer may also add entries to the registry (user selected options, key validation, other random stuff) which you won't get with a zip.

As Journeyman Greek said in his post, zip package is better for standalone 'installs' where you want portability and don't want to be tied down to a particular machine. This is because .zip naturally won't make any changes to registry, so unless they give you a .reg file to click on (very unlikely) it means that the entire directory is self-contained including any local .ini files.

Personally I prefer downloading the installer in general; because I get any customization options and it will setup any registry entries automatically as well.

2 of 2
5

Please note that any answer is highly dependent on the specific software you're looking at. What is true for Notepad++ may not be true for other software packages, it just depends on what the developers decided to publish.

The zip packages in the case of Notepad++ are standalone -- you can carry it with you on a thumb drive, the other one isn't. In many other cases, .exe files are blocked by some firewalls/content filters for 'safety' reasons, and zip files will work.

A more extreme case of that is PDF-XChange Viewer - which has zipped installers and exe installers (so if .exes are blocked you can download the .zip) two different msi installers and a portable zip.

I'd default to .exe or .msi if I want an installer unless it's blocked since I KNOW its an installer. I'd go for .zip if it didn't work (and I really needed the software). I'd default to .zip if i wanted a portable install, unless it was a zipped installer.

🌐
Reddit
reddit.com › r/vscode › ...but what's the actual point of user install instead of system-wide install?
r/vscode on Reddit: ...but what's the actual point of user install instead of system-wide install?
January 22, 2021 -

I have all my software that I install installed system-wide under "Program Files", so I don't get why one program should be an exception. Why should I want user-install? Is there really no way to force system-wide install these days?

Note that I'm not looking for descriptions of differences per se between system-wide and user install. I'm looking for what the actual benefits of user install are, and what the actual disadvantages/problems with system-wide install are.

So far I'm aware of one disadvantage of user install, and that's the fact that the start menu search can't find vscode no matter what, because it's automatically installed to a location that the start menu search ignores.

Top answer
1 of 2
14

Basically a user install doesn't require admin rights. This means if you want to use VSCode on your work computer you don't need to get IT to install it.

It should still show up in the start menu. Assuming you selected the option in the installer it should have a shortcut somewhere in

%appdata%\Microsoft\Windows\Start Menu\Programs`

Finally Microsoft does provide a system install version that sounds like what you are looking for. It's located on the download page: https://code.visualstudio.com/Download

2 of 2
2

you should default to user install and only use system install when necessary. principle of least power and whatnot.

i somehow always irreparably fuck up my python install on windows because of conflicts between system versions, local versions, system pip, local pip, it’s a fuckin mess. any seasoned python dev will tell you the solution is to use one version of python and only install packages locally, preferably through aggressive use of virtual environments.

the main benefit of user install is isolation and orthogonality. system programs are in program files, personal programs that you would want to keep with you across machines are to be installed locally.

this is less relevant these days now that people rarely share computers, but the idea is the same. i act as if there’s another user who uses my computer under a different account sometimes. some programs should be universal, like photo editing software, video players, etc., while it isn’t really important that everyone have access to my customized text editor or the 800 million fonts i download.

Find elsewhere
🌐
Flathub Documentation
docs.flathub.org › for users › user vs system install
User vs system install | Flathub Documentation
Flatpak applications can be installed either per-user or system-wide. The difference is that per-user installations are only available to the user that installed them, while system-wide installations are available to all users on the system.
🌐
GitHub
github.com › microsoft › vscode › issues › 125590
Clarity about User Installer and System Installer for Windows · Issue #125590 · microsoft/vscode · GitHub
June 5, 2021 - While we're deciding whether or not to implement #122698 I think we should first make it easier for people visiting via Windows to understand that there are two installers and know they have a choice. I just wasted 76.3 MB of mobile data downloading a User Installer then realized I was expected to get the System Installer.
Author: microsoft
🌐
Quora
quora.com › Whats-the-difference-when-choosing-to-install-Visual-Source-Code-using-user-vs-system-install
What's the difference when choosing to install Visual Source Code using 'user' vs 'system' install? - Quora
Answer (1 of 4): Hi, I suppose you are talking about Visual Studio Code, but it doesn't matter much. I also assume you are talking about installing it under Windows ( which in this case is more relevant )… Thus, under Windows, doing a system (-wide ) installation means the installed applicatio...
🌐
Prajwal Desai
forums.prajwaldesai.com › home › microsoft cloud › sccm
SOLVED - Difference between Install for system, install for user , deploy to user collection deploy to device collection | Forums on Intune, SCCM, and Windows 11
September 29, 2020 - Install for user: The client only installs the application for the user to whom you deploy the application. Install for system: The client installs the application only once.
🌐
LaunchBox Community Forums
forums.launchbox-app.com › noobs
Installer VS Zipped Archive For Emulators - Noobs - LaunchBox Community Forums
September 13, 2018 - Hi, I was always curious. When an emulator like RetroArch, PCSX2, or Dolphin, etc as an example gives you the choice between the standard installer version, or the zipped archive version that contains everything in a self contained folder, which one should I pick? Some people say that you should ...
🌐
GameDev.net
gamedev.net › forums › topic › 668502-should-i-use-an-installer-or-zip-for-my-game › 5229667
Should I use an installer or .zip for my game? | GameDev.net
May 21, 2015 - I don't know how to make an installer at the moment, but I can learn how to make one if necessary. ... i'd say it depends if you plan to release your game for capable persons or inept. note, i don't sell games... neither a follower nor a leader behttp://www.xoxos.net ... I take it we are talking about Windows only? (different platforms have different expectations in this regard). I'm a fan of zips, so long as the game is fully self-contained in it's folder, and doesn't need to be installed to Program Files, or have a bunch of dependencies installed, etc.
🌐
OBS Forums
obsproject.com › home › forums › obs studio support › windows support
Installer or zip? | OBS Forums
May 23, 2021 - If it doesn't come with an installer, it also doesn't come with an uninstaller, so I will not use it. ... I would also recommend the installer. I will use apps in zip format if they are small, "self contained" apps, meaning all the files they need to run are located within its directory structure.
Top answer
1 of 2
36

The installer is typically there to make things easier for the end user. It does some combination of the following:

  • Unzipping
  • Creation of directories
  • Installation of required runtimes (redistributable like: .Net, Visual C++, Direct x)
  • Registration with the OS (for later clean uninstall)
  • Display beautiful, beautiful screenshots to prepare the player for your game while it works.
  • Offering the user the chance to register their game
  • Downloading updates for the assets or patches for the game
  • Add icons to the start menu or the desktop
  • Set correct permissions for various game directories (temp folder, save directory, etc.)
  • Just install it already, allow the user to mindlessly click next and get to playing the game!
2 of 2
4

An installer abstracts the process of deploying complex pieces of software infrastructure, which is usually contained within an archive, through a convenient, self-sufficient user interface.

This UI can be graphical or based on text which is output on a command-line such as the unix shell (e.g. bash). In case of graphical installers, most often a so called installation-bootstrapper is used, in the latter case, installation scripts which can be bash-scripts, Microsoft batch scripts, or other any scripting language which runs on a command line.

In the simplest case an application is simply an executable file, with the operating system knowing what to do with the file in order to run it. The application file may reside in a folder with subfolders and other auxiliary files, packed into one archive. In this case no installer may be needed.

For complex software, entire software platforms and tight integration with the underlying operating system infrastructure may be desirable, for instance to enforce the copyright of a software product.

Many installers on Windows provide an /e or /extract flag. e.g. setup.exe /e to allow extraction of the archive's contents without the installer running its installation script. I recently needed to do just that.

Towards portability

Installers have almost become a norm for delivering professional software, no matter how simple the underlying software assets. With an increasing number of computer savvy users and the desire to migrate ones applications from one desktop to the next, portable software, often delivered in a simple archive, is becoming increasingly popular.

( I don't know how much time in total I have spent on installers, but it is definitely on the order of days. )

Tasks the installer may handle, are:

  • unpacking (often using exotic, high compression archivers)
  • ensuring system hardware requirements
  • ensuring sufficient hard-disk space
  • ensuring software platform runtime requirements (e.g. 'redistributables')
  • checking for newer software updates
  • downloading the software from a remote repository
  • creating and/or updating program files and folders
  • create configuration files, registry entries or environment variables
  • install sofware drivers, mount or unmount devices
  • increase accessibility for everyday users, by explaining installation steps, creating links, shortcuts
  • promote the own sofware through bookmarks, etc...
  • create incentive for the user to actually startup the software, by presenting the keypoints of the software during the installation, slide by slide
  • create additional revenue, through software-bundling
  • configure kernel-modules and automatically running components (e.g. daemons, windows-services)
  • automatic patching of the sofware
  • setting folder, file and user permissions
  • creating GUIDs to couple the software to a specific installation-instance and for instance, prevent portability

... If you can think of other points, let me know and I will incorporate them.

🌐
Reddit
reddit.com › r/vscode › question about system installer vs user installer?
r/vscode on Reddit: Question about System Installer vs User Installer?
August 26, 2024 - I heard that the User Installer will install into the AppData and the System Installer will install into the Program Files is this true? I prefer my…
Top answer
1 of 4
20

There are several reasons why programs come as installers rather than standalone executables:

File Size Concerns

  • Programs with many, large dependencies can bundle Web-based installers that download the dependencies and place them in a common location, so that they can be shared by multiple programs. For example, DirectX is a very large library. If every single program on your system that depends on DirectX just bundled the entire DirectX runtime with it, it would consume a good bit of space. This may not seem to matter in the age of 4 TB hard disks, but consider that SSDs are quite a lot smaller in capacity, and they're coming into common use on ultrabooks, some with as little as 64 GB of storage. And of course there are many other shared libraries aside from DirectX.

  • Programs that are both very large and continuously updated are best distributed as a collection of many small files, along with a launcher or updater program that checks the Internet for an update, and if any update exists, only download the required changes. If all large programs were shipped as a single monolithic executable, it is very likely that the patch process would require re-downloading the entire executable, as patching the running executable file on disk is near impossible due to file locks. Also, because the updater needs to know where its files are, it often stores that directory path in a well-known location in the registry.

User Convenience Concerns

  • Installers for very large programs, such as Visual Studio and Microsoft Office, allow the user to de-select the installation of certain features, if the user knows they will never need them. This has 3 potential benefits: it reduces disk space consumption; it can reduce download time and bandwidth consumption if the installer is a web downloader; and it can reduce "clutter" and "bloat" on the user's machine, fewer start menu / desktop shortcuts, fewer startup programs, etc.

  • Installers for complicated programs often come with configuration options that the user can set up using a user-friendly graphical interface as part of the installer. See for example the MySQL or SQL Server installers, which can take you through the entire process of getting your database server up and running before you even click "Finish" on the installer.

  • Installers can prompt the user for required information, such as license keys, which only need to be entered once. This can simplify the design of the program itself, and reduce the number of things it has to do and check for when it starts up. This also results in the user having confidence that, once the program is successfully installed, it should "just work" -- there are no more "gotchas" within the program that may hold them up from using it.

Compatibility Concerns

  • Some programs conflict with other programs. This is a simple and unfortunate fact of software engineering. Before installing a program that has known conflicts with other programs, it is often helpful to first check the system to see whether an incompatible program is installed. The user can then be alerted if so. For example, there is a very dangerous incompatibility potential in older versions of VMware and VirtualBox, that resulted in a Blue Screen of Death, because one program would try to use a special virtualization processor instruction after it was already reserved for user by the other product. If you were to simply provide the end product to the user without an installer, you would have to check for the presence of incompatible products at every start of your program, which could slow down the startup of the program.

  • Programs may have dependencies on other system components that can only be installed at a system-wide level, not at a per-user level. In order to install these special system components, administrative privileges are usually required, and an installer usually has to be run.

Elevated privileges and special services

  • Some programs depend on changes to the operating system for their functionality, and these changes can't easily be implemented without some kind of installer to take care of them with administrative privileges. For instance, programs that install drivers or kernel modules, such as Wireshark, can't simply be run, because you absolutely have to ship the kernel-mode components in separate files. In the absolute best case, you would still have to have the user manually unzip an archive, and then run some kind of installer for the device driver. Services are another example of something that requires administrative privileges to install. Installer software is particularly good at obtaining admin rights in an elegant way, without requiring that the main program itself request admin rights every time it runs (this would be an unnecessary security exposure in many cases).

Having given all these reasons for why installers are useful, here are a few observations from the other side:

  • Many programs, even those that are only available for download as an installer that requires admin privileges, can be forcibly "unpacked" from their installers and run directly without installing them. Other programs, especially open source ones, are repackaged into self-contained executables by PortableApps. It is noteworthy that some programs, when unpacked from their installer, will have reduced functionality, exhibit errors, or other problems.

  • On operating systems other than Windows, it is almost always possible to simply download (or compile) programs and run them as a regular user, without obtaining root. There are a few exceptions with respect to packages that are a core part of the operating system, but for most user applications, you can run it in your home directory without installing it system-wide using the package manager. Windows is a bit of a special case in that most desktop programs on Windows have an installer, and can usually not be installed any other way.

  • Even on non-Windows platforms, programs that need the ability to load a kernel module come with some sort of installer, which compiles the kernel module and installs it in the right directory. You can also expect to see an installer in the event that the program is a daemon that will be started using a system service script, e.g. in /etc/init.d. This type of "shrinkwrapped binary" is a less common distribution method on GNU/Linux, but most Linux distributions still provide most software in the form of installable packages, each of which requires root access (admin access) to install.


Conclusions

You asked why we need installers. The short answer is that we don't -- not strictly speaking, anyway. There are vanishingly few examples of applications that cannot, in principle, be bundled into a single self-contained executable with no resources, no installer, etc. Even something as complicated as VMware Workstation could automatically obtain admin privileges, write the hypervisor kernel module out to a file on disk, and install it dynamically on program startup, and ship all of its resources (images, sounds, etc.) bundled inside the data section of the executable.

Using an installer or not is a choice that software producers have to make. There are advantages and disadvantages to using an installer. Many vendors choose to distribute their software both as an installer, and as a standalone binary, or at least as a ZIP file that can simply be unpacked and run. For software that does not absolutely require an installer, this is a very pragmatic way to go, and makes everyone happy. Usually, software that does not ship in any other form than with an installer is software that requires administrative privileges to install some component of itself, since the installer is the most elegant way to obtain the needed privileges.

Personally, I find installers very annoying in my day to day work, because sometimes I want to run a program when I don't have administrative rights on the computer I'm using. I have quite a bit of experience manually unpacking installers to extract the program files within, and then getting those files to run correctly. However, on my personal PC at home where I always have administrative access, I find installers beneficial and convenient, because most installers give me useful options, like whether to create a desktop shortcut, that I would have had to do manually instead without it.

2 of 4
3

The installation process considers these items:

  1. whether you have required library (api) installed, such as .net framework version, or direct X.

  2. Install some extra system DLL files into system folder. If system folder already contains these files (same version), then ignore this step. This way you don't need several copies of the same DLL files.

  3. Install shortcuts into your Start menu or Desktop to help you start the application quickly.

  4. As you said, Registry modification. This step can actually be done when the application is first executed in this computer, so it is not extra important.

  5. very important: whether to bundle a software (such as Google desktop bar or Yahoo! bar into your IE). This is the way a lot of independent software creating revenue to the developer. Don't forget that, if you are using free software.

Because we are considering an "executable" application, we don't need to discuss those steps that can install a IE add-on or related things.

Top answer
1 of 2
65

What you're really asking is:

How does an installer work?

A bit of background.

In the Before Times, man did not have such things as "installers." Software was run directly off of floppy disks (and none of that rigid 3.5" crap, I'm talking disks that flopped), like God intended.

Then came the first home computers with persistent hard drives. For the first time, it made sense to copy a program off a disk and have it stick around.

But programs still worked the way "portable" applications do today: you copied them as-is and ran them as-is.

Then operating systems began to get more complicated.

Windows introduced this notion of a registry: a central location where program and operating system configuration could be stored. Software authors began using this registry. Its arcane architecture and user-hostile editing utility (the infamous regedit.exe) made it the perfect place to store shareware information -- how many days you have left on your trial, for example.

This happened around the same time that programs began to be too large to fit -- uncompressed -- on a single floppy disk. A way was needed to split a program onto multiple disks. Since it wasn't very user-friendly to require the user to have e.g. a ZIP extractor installed (remember, this was before ubiquitous Internet), Windows programs began to be shipped with installers. You can think of these as basically portable versions of WinZIP whose sole purpose was to reassemble and extract a compressed file.

These days, installers serve a number of other purposes:

  • providing a convenient user interface
  • prompting the user to accept a click-through end-user license agreement (EULA)
  • prompting the user for CD keys (though this is being phased out for many systems in favor of digital distribution)
  • asking the user to register their software

and so on. They may also serve as DRM vehicles, validating CDs and decrypting data to prevent villainous individuals (yarr) from brrreakin' ye olde DMCA.

At their heart, they aren't any more complex than in the Windows 95 days -- a glorified unzip program.

Sidenote: Where does the installer get 5GB of data from 200MB of archives if not the Internet?

That's high, though there are plenty of ways you could get that compression ratio. Imagine a complex game whose world is defined in verbose XML -- that's readily compressible. You could even get that back in the old WinZIP days.

2 of 2
30

A zip file can only hold some files and then you unzip and get those files as is.

An installer however can be a very complicated program. It can create the needed files or folders structures, It can register the required dlls on your system, give you the options of the features that can be installed, Check your system for the compatibility and also be used as a wizard to guide you, step by step, to custom install you application.