Renaming the containing project folder in VS.net u

2019-01-12 18:13发布

问题:

I have a vs.net project, and after some refactoring, have modified the name of the project. How can I easily rename the underlying windows folder name to match this new project name under a TFS controlled project and solution?
Note, I used to be able to do by fiddling with things in the background using SourceSafe ...

回答1:

Just right click on the folder in TFS, and select Rename. Once you commit the rename, TFS will make the changes on disk for you. As Kevin pointed out, you will want to make sure that everything is checked in, because TFS will remove the old folder and everything in it, and pull down the renamed folder with the current version of the files in it.

One final note: You can't rename a folder that you haven't mapped, or that you haven't done a "Get" from. I don't know why, but TFS will disable the Rename option in these cases.

At least that's what happened to me, if I remember correctly.



回答2:

  1. Check in all pending changes within the folder and ensure that all other team members to do the same.
  2. Ensure that you have a copy of the folder in your working directory (otherwise, you will not have the option to rename the folder in the Source Control Explorer in the next step). Get latest version on the folder to get a copy if you don't already have one.
  3. Close the solution.
  4. Rename the folder within the Source Control Explorer. This will move all of the files that are tracked in source control from the original folder on your file system to the new one. Note that files not tracked by source control will remain in the original folder - you will probably want to remove this folder once you have confirmed that there are no files there that you need.
  5. Open the solution and select 'No' when prompted to get projects that were newly added to the solution from source control. You will get a warning that one of the projects in the solution could not be loaded.
  6. Select the project within Solution Explorer.

    Note that it will be grayed out and marked as 'Unavailable'.

  7. Open the Properties pane.
  8. Edit the 'File Path' property either directly or using the '...' button.

    Note also that this property is only editable in Visual Studio 2010. In newer versions of Visual Studio, you will need to manually edit the project paths within the solution file.

  9. Right-click on the project in the Solution Explorer and select Reload Project from the context menu. If you get an error message saying that the project cannot be loaded from the original folder, try closing the solution, deleting the suo file in the same folder as the solution file then reopening the solution.
  10. Check in the changes as a single changeset.
  11. Have other team members 'Get latest version' for the solution (right click on the solution within Solution Explorer and select 'Get Latest Version' from the context menu.

Note: Other suggested solutions that involve removing and then re-adding the project to the solution will break project references.

If you perform these steps then you might also consider renaming the following to suit.

  1. Project File
  2. Default/Root Namespace
  3. Assembly

Also, consider modifying the values of the following assembly attributes.

  1. AssemblyProductAttribute
  2. AssemblyDescriptionAttribute
  3. AssemblyTitleAttribute


回答3:

You could just rename the project (.Xproj file and project folder) in TFS, delete the local folder structure and all of its contents, then do a get latest for the project. All of this depends the notion of your source repository is completely up to date and compilable.



回答4:

Here are steps that worked for me in Visual Studio 2008 with TFS:

  1. Close solution.
  2. Rename project folders in Source Control Explorer (right-click -> rename). This duplicates code into newly named folders.
  3. Open the solution, and in Solution Explorer, remove the old folders/projects and add the new, properly named, duplicates, (on old projects, right-click -> remove, then on the solution, right-click->Add->Existing Project...)

OR: After step 2, you can open the solution's .sln file in a text editor, and manually update the project folder names. If you do this, you might need to manually check-out the .sln file to be sure your changes will be checked in (<- important!).



回答5:

My particular configuration is VS2010 connecting to TFS2008. I tried some of the other solutions here, but had problems. I found the following worked for me:-

  1. Remove project in folder to be renamed from solution
  2. Save solution
  3. Rename folder containing removed project in TFS source control (this renames locally on your hard disk)
  4. Add project back to the solution from the new location
  5. Save solution
  6. Commit to source control

Now, you'll have the folder rename and the solution re-map all committed under one changeset.