What is the best what to manage different versions of my VS project. Its a general question because I often find myself creating an entire copy of a project folder to try something a little different in the code and not risk messing something up.
Id like to save the state of my project, including any dlls that I compiled. Switch to a different "version" of the project and change things around, RECOMPILE .. and be able to access BOTH dll's, (them being named slightly different I suppose), and access the state of the code in both versions just by "switchign" to it... is there a way other than duplicating entire project?
You need a version control system. One of the many distributed version control systems (ie. Git, Mercurial, etc.) that support local branching will make your scenario just a couple commands away.
There are tons of questions here on Stack Overflow which cover the topic of version control systems: https://stackoverflow.com/questions/tagged/version-control?sort=votes