It often happens that I develop multiple different projects at once, so I need a solution to switch from one environment to another.I have created batch files to do the job but as this thing grows, I'll soon need something better.Some things I do are:Map drivesLaunch applicationsLoad test databasesSet environment variablesetc.Any suggestions on that?Edited:I want to unify the development process in some way. We use VS, Eclipse, Notepad++ or what ever the developer needs.The goal is to be able to load a project in any windows machine without having compiling or other issues.Example:The solution might need to reference files, sdk folders, test data paths or other stuff.To solve this: I have mapped the code to a drive. The project doesn't need to know whether the dev is using c:\dev or c:\programming folders (user choice). They only need to map their coding folder to a drive (lets say W:) every file of the solution is under W:Another problem is the SDKs. An sdk can be in c:\programfiles\Microsoft sdks\etc.. or in c:\programfiles x86\Microsoft sdks\etc..Those Sdks should also need mapping to a standard folder that the solution knows.Another thing is that we want services running (apache lets say) if we develop a website. We don't want this to run all the time.The solution so far is to distribute batch files that the developer edits once in order to match their paths to the solutions and they run the batch before they start their new task.I am thinking on developing a app that will set the environment as desired. Preconfigured sets that are distributed. The developer executes them in order to set the enviromnent as desired.I hope to be clear now on the problem. Any suggestions on doing that in a better way?
How can I configure my programming environment to enable rapid switching between projects?
project management;tools;windows
Ask yourself: why do your projects need different environments? Can't you launch your development tools for two projects at once? That means:Map drives: if your project need a specific drive mapping, there seems to be a design flaw, at least a missing configuration optionLaunch applications: should be possible in parallel (main memory is cheap, if that's your problem)Load test databases: same as Launch applicationsset environment variables: can't this be done in parallel for both projects? Any collisions here?So switching between those two projects becomes very simple after that.If you really need separated environments, try using virtualization. So you don't have to  load your test databases or launch your applications - just freeze your virtual machine when you end your work and restart it later, having the complete environment reset to the previuos state at once, without any batch scripts.EDIT: seems you have changed your original question to how do I manage different environments of different developers. That's a different question. My suggestion:avoid absolute paths in your build process whereever possible - each project should have a single root folder after checking it out from your source control, and it should make no difference for the build process where this root folder lies. Avoid any need for a special drive mapping.try to convince your team that every tool or SDK you are using will be installed in the same folder on each workstation. If that is not possible, try to build some auto-detection into your build scripts for finding the installation folder and setting environment variables appropriatelyif you can't solve your problem by some simple batch scripts, there seems too much diversity between the different developer environments - solve that first before introducing another complex element like a full-fledged application instead of those scripts.