How to Relocate Visual Studio project (.sln) file

2020-05-13 22:33发布

问题:

I would like to move the Visual Studio solution (myProject.sln) file into a folder.

The problem with doing this is that all the relative paths in the project will break, how can you relocate the project without updating all relative paths inside the project manually?

Thanks.

回答1:

Just click on the solution in the Solution Explorer and then click on "Save myProject.sln as..." in the File Menu. This will save your .sln in the folder that you choose without breaking the references.



回答2:

open the .sln file inside notepad or similiar, near the top it has the relative base path - modify that to suit your needs.



回答3:

To complete jrummell solution: after editing the *.sln file with the nodepadd, you certainly will have to delete the *.suo files that contains a deprecated cache.

Note that *.suo files are hidden files in windows 7 (so by default, you do not see it in your explorer).



回答4:

With source control this is a little tricky. I just needed to move my solution .sln file up one level for easy access while maintaining source control history. I followed the advice of the previous posts but ran into a situation where TFS wanted to move all my projects with the solution. I accomplished this task using a combination with the following steps:

  1. Make sure solution is not open.
  2. Un-map solution from local drive.
  3. Right click Solution (.sln) in Source Control Explorer and select Move as mentioned above. Set the path of the new folder and select OK.
  4. Checkin that change.
  5. Checkout solution .sln and then edit the solution in notepad. You will see that the projects are assigned guids and there are file paths to the projects. You need to change all of those paths relative to where your new solution file .sln resides. Be sure and use double slashes for unique names and paths:

GlobalSection(TeamFoundationVersionControl) = preSolution

SccProjectUniqueName1 = MyNewFolder\\MyProject.Common\\MyProject.Common.csproj

SccProjectTopLevelParentUniqueName1 = MySolution.sln

SccProjectName1 = MyNewfolder/MyProject.Common 
SccLocalPath1 = MyNewFolder\\MyProject.Common

Check-in and re-map solution to local drive. This worked for me. Hope it helps!



回答5:

You can update the relative paths to each project in a text editor.