Stop polluting My Documents with Visual Studio folders
Visual Studio creates a new folder in My Documents with every version. Over time, if the user requires many different versions of Visual Studio installed, this pollutes the folder. My Documents is supposed to be where I keep, well, my documents.
This even goes again Microsoft's own software design guidelines, if I remember them right.
Most of the subfolders should be moved to the existing AppData Visual Studio folder. The Projects subfolder has no reason to exist, since you might as well default the My Documents folder when creating new projects (the user can obviouly change this at the time, it's just a default location, as with any other app.)
We’ve begun work on this and are considering changing the default location for new projects to C:\\USERPROFILE\Source\repos. Would this be a reasonable change to address the problem of “clutter” in the Documents folder? This is currently the default for cloned repositories, so all projects would be in a singular default location.
As well, you still retain the option to change the default if you’d like.
Program Manager – VS IDE
Also the IISExpres, SQL Management Studio, Visual Studio and OneNote folders should go away.
Why do I automatically get all these empty placeholder folders? Does noone at Microsoft enjoy a clean structure themselves?
The IISExpress casues a nightmare with technologies like OneDrive and windows built in profile/folder sync. The IISExpress folder is actually more of a temp folder with all its continous logging etc.
Now if Microsoft stops forcing a structure into my data folder, other vendors might also stop creating folders for me there. After all, the documents folder should be mine to control the structure of.
I totally agree, please get these out of the My Documents folder! I have installed 5 or 6 different versions and since those build everything into the My Documents I keep pulling forward old folders/files and seemingly everytime I delete them and try to reset all of the folders to a new location, something will go back and recreate those folders and start throwing files back out there.
I suggest creating a setup tool that allows setting the locations of all of those folders and run as part of install or any time after install to reconfigure. My problem is that my employer has chosen to setup folder redirection on my entire user folder, so when I have connectivity issues with the network, login from home before connecting to VPN, or WiFi in the building drops out Visual Studio and SQL studio become useless, and even when connected it takes forever on startup. I want to be able to easily change everything to a local drive without having to dig through multiple options menus and registry editor.
Changing the default location for new projects is COMPLETELY MISSING THE POINT. The issue isn't with project folders because that's already user-configurable. The issue is with the stuff VS WON'T .allow you to change. I use OneDrive for all my personal files because I can access them from anywhere (and more to the point, so can my NAS drive which runs daily backups). I don't want this stuff polluted with stuff that belongs in application data, not user data and certainly doesn't belong in my backups.
It's grotesque that the VS team don't seem to live in the 21st century and are so far behind the curve on what the problem even is. How on earth do MS organise their code projects that this stuff is still hard coded into VS?
Hi guys, can You just provide some registry keys so I can change the idiotic behaviour of creating folders:
Visual Studio 2017/StartPages
Visual Studio 2017/ArchitectureExplorer
This is so idiotic and kills the integration of documents with OneDrive for business.
This only shows that VS devs are 20 years behind current MS
That location would seem good to me.
I'm trying to avoid it defaulting to redirected company network drives (v. slow)
We're migrating the company to OneDrive and using that for redirecting default folders. When re-directing there the c# folder name is illegal. so get it out of 'My Documents' get the IT Pro/Admin votes.
Brady Healey commented
So now we have C:\Users\<User>\Source\, which I don't like but oh well. I've changed it to my own projects folder so no harm. However we still have the junk project/item templates which should be in AppData really. Worst of all, visual studio still makes the stupid 'StartPages' folder and there's no option to change it. The folder doesn't even contain anything. Problem not fixed. You'd think MS of all companies would be respecting the purpose of various windows directories the most. Unreal.
What about work also on clean installation on only one drive. We have small SSDs, we're not millionaires. And It can be done, since I have two PGP mounted drives to circumvent this.
Søren Nguyen Boisen commented
To me the important changes are:
1) Split the content so projects go to one location and VS cruft like snippets go to another.
2) Allow user to override default location of project folder.
3) Use the same name regardless of VS version to avoid future cruft.
Brian Drennan commented
I vote for the default for new projects to be under %USERPROFILE%\Source or %USERPROFILE%\Source\Repos by default (but obviously to the user's default folder when set). For settings docs (non-projects, snippets), I like the idea of using the AppData folder. My Documents is the absolute worst when your organization decides to employ folder redirection with OneDrive... Sync errors for days! I wish IISExpress was easier to configure to change this as well (I just gave up).
IISExpress is another offender. I opened this suggestion yesterday.
Jan Kučera commented
Well in my documents, there are Visual Studio 10/11/14/15/2005/2008/2010/2012/2013/2015/2017 folders and I am happy with that.
I do keep my "serious" projects in a separate folder and source control backed-up projects on different drive, but the random and ad-hoc projects I keep in the document folders.(And my separate project folder has symlinks to the document folders too.)
If this is customizable at install time, the documents folder should probably be still default 1) as it is actually the recommended location for user's stuff AFAIK - definitely not AppData as has also been explained below 2) for backwards compatibility reasons.
But I agree with Patrick and TheLievense that the plurality of mostly empty folders in those VS directories is unnecessary.
Del Woodcock commented
C:\\USERPROFILE\Source\repos is still not good.
I put all my stuff in C:\SourceCode on my system. And besides TFS, I back it up to a network share every night.
What needs to happen is make it an option to locate the folders where ever you want before installation.
%USERPROFILE%\Source is still not the correct location, it's just more clutter!
Program base installation goes to Program Files
Per-program data goes to ProgramData
Per-user data goes to %USERPROFILE%/AppData
It's not hard, seriously. I uninstall any software that bloats the wrong directory. The worst part is that you guys can't even provide a simple option to move the start page folder, so it's still stuck in our documents.
This is critical - our documents folder is mapped to the network and results in Visual Studio running *horribly* slow.
Yes, C:\UserProfile\Source\Repos would be an improvement, but even better would be something off the root, i.e. C:\Code. This is what I always do. Inevitably, I am at the command line and don't want to deal with typing spaces. Rationale (1) We're talking about developers who understand the concept of folders and files, not people who need the security of "My Documents" library that masks the real folder. (2) Development tools are installed on the PC and source is in Git/TFS so less concern about backing up stuff out of the documents folder.
Fadi R commented
That's what VirtualBox is for my friend, keeps Visual Studio from turning your Work Station upside down because polluting your Documents is the least of it's offenses. It's also useful when you want to completely separate environments different editions so that they don't step on each other's toes or even just isolate different projects from each other. I've experienced no performance hits doing this.
TJ Horton commented
Allow a user to change the parent filler, don't fix it to any location. Also never assume c: drive.
Erik Ušaj commented
Hi Allison, hi Mark,
Make sure that setup has an option to define the global folder for VS projects.
Developer customers should be able to select appropriate global folder for their needs:
- default (as recomanded by Microsoft, best practices, GPOs, available space, etc.)
- custom (anything that makes sense to developer; for example external drive on systems with limited primary drive space / limited space on User folders)
On top of that setup should include steps to define personal and company version control system (git, svn, mercurial, ...) and project locations should be separated for company vs. personal projects. For example my current company requires all personal files are stored in a "\personal" folder on any drive. Company does not have rights to access that folder.
Setting up a meeting with Windows / Windows Server PMs responsable for Folder Recirection features and associated GPO settings might be also a good idea.
( see & read: https://technet.microsoft.com/en-us/library/cc732275(v=ws.11).aspx )
Discuss possible issued customer can face with poorly congigured GPOs, space limitations on a typical Office knowledge worker space allocation size, etc.
Michael Richardson commented
Allison, I have little opinion about the default because it will only matter to those who don't have their own system (mine is "c:\prj\[client]\[project]" and those people won't have much reason for an opinion. What I do care about is easily being able to select my own choice and it be anywhere I want (allow for junctions for example).
Patrick Westerhoff commented
I don’t think that the issue is generally with *project* files. I personally like to have my projects inside ~\Documents (although I put them into ~\Documents\Projects).
I think the issue is more with the other folders that are created, e.g. ArchitectureExplorer, Code Snippets, Settings, Templates, etc. Most of those folders are completely empty! Ignoring the Projects folders, I currently have 2 files and 44 folders spread inside the Visual Studio 2017 folder. That’s ridiculous and mostly unneeded: Those folders should only be created when there’s actually content placed within them.
And it’s even worse if you have multiple versions of Visual Studio installed. I used to have folders for three versions, all without much in them apart from the projects—which are additionally too spread for things that are not really version dependent after all.
So generally, project sources might be placed into ~\Documents\, ~\Source (if you insist, although I really dislike that place since the Windows HOME isn’t like a Unix HOME, so stuff there feels a bit wrong to me), or even ~\Documents\Visual Studio projects (to make up something completely new here, which would be version independent too).
And all those settings and configurations and presets should be stored in %APPDATA%, like sane Windows applications do. Ideally, you should provide a way to back up those settings from within Visual Studio, so you can carry them over to a different machine easily. But those don’t belong into a prominent document location.