VisualStudio 从某处检索项目的不正确路径

Visual Studio (可能还有 TFS)在某种程度上(我认为可能是在源代码管理合并期间)对解决方案中项目的路径感到困惑。

它认为它就在这里(简单性的示例路径) :

C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj

而实际上,项目文件位于这里:

C:\My Projects\ExampleSolution\ExampleProjectCorrect\ExampleProjectCorrect.csproj

我无论如何也不能让它认出正确的位置。我试过:

  • 从正确的位置删除并重新添加项目。

  • 手动编辑. sln 文件,以确保所有对 ExampleProjectCorrect.csproj的引用都具有正确的路径。

  • 在解决方案目录中的文件中查找正确和不正确的路径,以尝试跟踪 Studio 在哪里隐藏了不正确的路径。

  • 删除 VS 和 TFS 的缓存目录

我之所以抓狂,是因为我不能重新创建解决方案,因为它几乎没有什么区别,有100个项目,并且与其他几个开发人员一起进行源代码控制。

有没有人能告诉我正确的方向,在哪里存储这个不正确的路径和/或如何重置它,以便该死的东西将正确加载?

79081 次浏览

Just guessing, but perhaps some of your other projects references your project from the wrong location? In this case, you have not just to delete and re-insert the project into your solution, you will also have to delete and recreate the references from the referencing projects (stored in their .csproj files).

  1. Go to Manage Workspaces (either through the File/Source Control menu or the workspace drop down in Source Control Explorer)
  2. select edit for your workspace.
  3. You should see, under working folders, a mapping for the source control directory to the old/wrong project directory.
  4. Select it and click remove.
  5. Close VS and delete the suo file.

It still references the wrong directory. Maybe rebinding might work at this point but I didn't try that. Reload your project and you should be good to go.

We've had similar issues with moves and renames. Deleting the local directories and then getting again solved it.

I was facing this issue after performing a migration from Visual Source Safe 2005 to TFS 2012. I couldn't wait for the "Conversion Wizard" due out in the next couple weeks so I just ran VSSConvert.exe. This took 6 or so years of history and moved it into TFS.. while I didn't get the actual timeline history.. I got a bunch of entries on the same day with the comments indicating the actual check-ins of the history.. not bad.

So after it ran all night (Successfully, yay!), I was having trouble loading my projects just as this question stated. For some reason, a few projects were being referenced to an incorrect directory. I checked the .sln, the .vsproj files, and getting latest, deleting re-getting, adding removing, etc.. I tried everything noted here... even upgrading my workspace, which I'm not sure what that even did.

FINALLY... I deleted the *.suo files and viola. It worked.

I spent a couple hours on this one.

I know it is an old line. I just went through the same problem. We recently migrate the TFS, so I created a new workspace to map to new server and kept the old one. Every time when I open a solution which is supposed to target to my new workspace, VS always tried to load projects from my old mapping directory, till I removed my old workspace.

Simply deleting the solutions .suo file worked for me.

A slightly different solution.

TFS was displaying a non-existing path for a particular Solution. Previously, I had a laptop with a separate D: drive, but now, I just have a C: drive. TFS still thought my project was stored on D:\Project\MikesProject

I didn't have a .suo file to delete, the D: path wasn't mentioned anywhere in my Workspaces (buried away under the File\Source Control\Advanced\Workspaces menu), TFS showed that I did have the latest files in my (no-longer-existant) D: directory, and TFS in VS2013 didn't have a "Remove Mappings" option for this project.

But what did work was to simply do a "Get latest version" on the project.

After doing so, a fresh copy of the code was written to my C: drive, and (interestingly), now the Local Path was shown underlined.

Previously, the D: path wasn't shown like this.

Odd. Very odd.

After trying many recommendations I deleted the suo file ( again ). The last time worked. Why it did not work earlier I do not know. In general I find deleting the suo file one of the first steps I do.

I had my asp.net website solution opened from my Dev Branch. Then for some other purpose I opened same solution from Main branch.

I made a change to one of my .ascx.cs file in the dev branch and set breakpoint. When I ran the debugger, all my break points were hit in the Dev Branch except for the .ascx.cs which was hitting the Main branch. Have not idea.

Tried cleaning the Temporary folder but didn't work.

What worked:

Closed all instances of Visual Studio

Opened the solution from Dev branch again.

Run again and the break points started hitting.

Even after deleting the .suo file and .vs folders, I had to edit the .sln file and remove the old relative url from SccProjectName# despite the SccLocalPath# being correct. Apparently VS also uses the name as a hint path.

Try to delete or rename .suo file (including extension). This file is at the same location where your solution file is. It worked for me.

In my case i copied the *.sln file into the project folder and changed the path to project into the *.sln file. Only this resolved the problem (vs 2015 sp1, winservise project).

Delete *.suo does not helps for me.

Yet another solution worked for us - after trying the delete of suo and almost everything mentioned in this thread. We had a project in the solution which was showing a ghost version of the csproj file. We deleted that file and our paths fixed on another project we were trying to add.

Deleting obj and bin files would solve the problem...