In the latest preview release of Visual Studio we are introducing the ability to disable (or re-enable) the package cache, or move it to another drive. This can be done using the command line or the registry, which can be deployed on a domain using group policy. This will be generally available in Visual Studio in a few weeks – scheduled for the 15.2 update – but we want to give you a preview and collect feedback on the feature.
Command line
If you pass --nocache
to the installer – even if just starting the installer – the cache policy is set to disable caching of packages, and any modification or repair of an instance will remove packages that are already cached (except for extensions). You can also pass --cache
to re-enable this policy, which might be handy if you expect to make any changes or repair offline.
"%ProgramFiles(x86)%Microsoft Visual StudioInstallervs_setup.exe --nocache
Any install, modify, or repair operation you perform in the Installer will set the policy for any subsequent operation. This means that you only need to pass --nocache
(or --cache
) once. The policy is stored in the Windows registry and will be used for subsequent operations.
Registry
The policies to disable or move the package cache for VS2017 are stored within the Windows registry in the following locations. When checking a particular policy, we will use the first policy value discovered and ignore the remaining keys in the order listed.
HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftVisualStudioSetup
HKEY_LOCAL_MACHINESOFTWAREMicrosoftVisualStudioSetup
(we will write to this key if the command line operations are specified)HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeMicrosoftVisualStudioSetup
(on 64-bit operating systems)
The first registry key above is treated as a read-only key in 15.2 and recommended for administrators deploying group policy objects.
Policies
The following registry values are supported.
- CachePath
- (
REG_SZ
orREG_EXPAND_SZ
) The directory where package manifests and, optionally, payloads are stored. The default is “%ProgramData%MicrosoftVisualStudioPackages” - KeepDownloadedPayloads
- (
REG_DWORD
) Keep package payloads even after they are installed. Set to 0 to disable caching packages. The default is 1. - SharedInstallationPath
- (
REG_SZ
orREG_EXPAND_SZ
) The directory where some packages shared across versions of instances of Visual Studio are installed. The default is “%ProgramFiles(x86)%Microsoft Visual StudioShared”
If you change the CachePath
after it has already been created, you should move existing packages from the old location to the new location and secure it so that “SYSTEM” and “Administrators” have full permissions, and “Everyone” as read-only permissions.
If you disable the package cache by setting KeepDownloadedPayloads
to 0, any modifications or repairs that require packages will require a connection to the internet or from wherever you installed VS and packages will be downloaded again. They will be removed after being installed or repaired.
Changing the SharedInstallationPath
will only affect subsequent installs of shared packages. Any shared packages (like many third-party and some Microsoft packages) already installed will remain where they are.