Visual Studio从某处检索到项目的错误路径


98

Visual Studio(可能还有TFS)以某种方式(我认为也许在源代码控制合并期间)对解决方案中的项目路径感到困惑。

它认为它在这里(为简单起见,示例路径):

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

而实际上,项目文件位于此处:

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

我一生都无法识别正确的位置。我努力了:

  • 从正确的位置删除并重新添加项目。出现一条错误消息说The project file at C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj could not be found

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

  • 在解决方案目录中的文件中查找正确路径和错误路径,以尝试查找Studio隐藏错误路径的位置。

  • 删除VS和TFS的缓存目录

我要拔头发是因为我无法重新创建该解决方案,因为该解决方案几乎没有区别,其中有100个项目,并且与其他几位开发人员一起致力于源代码控制。

任何人都可以向我指出正确的方向,以指示错误的路径存储在何处和/或如何重置它,以便该死的东西可以正确加载?


那么,如果将项目移到ExampleProjectWrong目录,会发生什么?
汉斯·帕桑

好的,有些进展。将其移至错误的文件夹后,我可以将其加载到Visual Studio中。但我无法将其保留在该目录中,因为“ ExampleProjectWrong”目录是另一个项目的宿主,其中包含几乎相同的文件夹结构。那么,有什么想法可以让我在加载项目后立即更改项目的路径?即使卸载了项目,卸载的项目属性中的path字段也不可用?
查理·德鲁伊特

3
我第二次遇到这个问题,但是这次我能够弄清楚该分支项目针对原始文件夹,因为我使用了不同的连接字符串。这是第一次很奇怪,导致visualstudio在源文件夹中调试文件,并将其与分支中的文件混合,甚至Log4net都记录到原始文件夹中!并删除解决方案锁文件,它是现在唯一正确访问分支的文件。
Binke 2013年

2
我有同样的问题。这并不像删除suo文件那样简单。我必须:1.从解决方案中删除有问题的项目。2.保存解决方案。3.删除.suo。4.打开解决方案,然后重新添加项目。
SeanLAllen 2015年

1
删除SUO文件对我有用。
DanielV '16

Answers:


96
  1. 转到“ 管理工作区”(通过“文件/源代码控制”菜单或“源代码管理资源管理器”中的工作区下拉列表)
  2. 选择工作区的编辑
  3. 您应该在工作文件夹下看到源控制目录到旧/错误项目目录的映射。
  4. 选择它,然后单击删除
  5. 关闭VS并删除suo文件。

它仍然引用错误的目录。也许此时重新绑定可能有效,但我没有尝试过。重新加载您的项目,您应该一切顺利。


1
另外,不要被源代码管理浏览器中的本地路径链接所欺骗。我的工作区有一个以上的映射,它显示了我在那里的期望,但是当它尝试加载项目时,它正在使用另一条路径。
本杰明·波茨

1
.suo文件被隐藏,因此您需要启用“显示所有文件和文件夹”选项
ANIL MANE 2015年

8
在Visual Studio 2015中,我遇到了相同的错误。对我有用的是删除隐藏的.vs目录和.suo文件。
丹尼尔·莱森

5
对于VS2015,您的.suo文件可能不在您想的地方。删除.sln文件旁边的文件(不要忘记“显示隐藏的文件”),还有一个文件隐藏在的子目录中.\.vs\[solution_name]\v14\.suo。一旦我得到了他们两个,我可以再次添加该项目。糟糕-@DanielLeiszen的部分功劳(只是注意到他评论了同一件事)
Richard Hauer

1
我不得不删除.suo文件重新启动VS才能保持理智
Appulus

33

简单地删除解决方案.suo文件对我来说是有效的。


5
在VS2015中,我需要先关闭所有Visual Studio实例,然后才能进行删除<SolutionDir>\.vs\<SolutionName>\<VsVersion>\.suo
GraehamF '16

12

从Visual Source Safe 2005迁移到TFS 2012后,我遇到了这个问题。我迫不及待要在接下来的几周内发布“转换向导”,所以我只运行了VSSConvert.exe。这花了大约6年的历史,然后将其移到TFS中。.虽然我没有获得实际的时间轴历史。.我在同一天收到了很多条目,其中的注释指示了历史的实际签入。 。 不错。

因此,它运行了一整夜之后(成功,是的!),正如这个问题所述,我在加载项目时遇到了麻烦。由于某些原因,一些项目被引用到错误的目录。我检查了.sln,.vsproj文件,并进行了更新,删除重新获取,添加了删除等操作。我尝试了此处记录的所有内容...甚至升级了我的工作区,但我不确定这样做的结果。

最终 ...我删除了* .suo文件和中提琴。有效。

我花了几个小时。


2
在删除* .suo文件之前,请确保关闭所有Visual Studio实例,然后再次打开解决方案。
2013年

5

稍微不同的解决方案。

TFS正在显示特定解决方案的不存在路径。以前,我有一台笔记本电脑带有单独的D:驱动器,但是现在,我只有一个C:驱动器。TFS仍然认为我的项目存储在D:\ Project \ MikesProject中

我没有.suo要删除的文件,在工作区中的任何地方(菜单下都隐藏着)都没有提到D:路径File\Source Control\Advanced\Workspaces,TFS显示我在(不再存在的)D中确实有最新文件:目录,而VS2013中的TFS对此项目没有“删除映射”选项。

但是所做的只是在项目上做一个“获取最新版本”。

之后,将新的代码副本写入到我的C:驱动器中,并且(有趣的是)现在在本地路径上显示了下划线

以前,D:路径没有像这样显示。

奇。很奇怪。


2
对我来说完全一样。由于那条错误的路径,我犹豫要扣动扳机并“获取最新消息”,但是@Mike给了我勇气!
2014年

2

我们在移动和重命名方面也遇到了类似的问题。删除本地目录,然后再次解决。


2

即使删除了.suo文件和.vs文件夹,我仍然必须编辑.sln文件并从中删除旧的相对URL,SccProjectName#尽管这SccLocalPath#是正确的。显然,VS还使用该名称作为提示路径。



0

只是猜测,但是也许您的其他一些项目从错误的位置引用了您的项目?在这种情况下,您不仅要删除项目并将其重新插入解决方案中,还必须删除并重新创建引用项目中的引用(存储在其.csproj文件中)。


感谢您的回应。解决方案中未从任何其他项目引用该项目。您能解释一下为什么在文件中查找不起作用吗?根据我的经验,如果您给它提供“查找”的目录路径,而不是选择“整个解决方案”,它将搜索所有文件类型,除非特别告诉您仅搜索某些文件类型?
查理·德鲁伊特

抱歉,您是对的,我以为您仅对解决方案中的文件使用“在文件中查找”,而不是对解决方案目录使用“我在那儿”。所以它应该工作。当错误消息完全弹出时,您能否给出更详细的描述?编译时是否会发生,所以您可以看到哪个项目编译失败?
布朗

0

在尝试了许多建议后,我再次删除了suo文件。上次工作。我不知道为什么它不能更早地工作。通常,我发现删除suo文件是我执行的第一步。


0

我从开发部打开了asp.net网站解决方案。然后出于其他目的,我从Main分支中打开了相同的解决方案。

我对dev分支中的.ascx.cs文件之一进行了更改,并设置了断点。当我运行调试器时,除.ascx.cs命中Main分支外,所有断点都在Dev分支中命中。不知道。

尝试清洁Temporary文件夹,但不起作用。

什么有效:

关闭了Visual Studio的所有实例

再次从Dev分支打开解决方案。

再次运行,断点开始出现。


0

在我的情况下,我将* .sln文件复制到项目文件夹中,并更改了要投影到* .sln文件中的路径。只有这样才能解决问题(与2015 sp1,winservise项目相比)。

删除* .suo对我没有帮助。


0

在尝试删除suo和该线程中提到的几乎所有内容之后,另一种解决方案为我们工作。解决方案中有一个项目正在显示csproj文件的幻影版本。我们删除了该文件,并将路径固定在我们要添加的另一个项目上。


-1

如果要在本地IIS(而不是IISExpress)下运行Web应用程序,请确保通过进入项目属性来命中“创建虚拟目录”按钮。完成后,执行“清理解决方案”和“重建解决方案”。



-3

我知道这是一条旧线。我只是遇到了同样的问题。我们最近迁移了TFS,所以我创建了一个新的工作区以映射到新服务器并保留旧的工作区。每当我打开一个以新工作空间为目标的解决方案时,VS总是尝试从旧的映射目录中加载项目,直到删除旧的工作空间。


这实际上并没有为最初的问题提供任何帮助
vlad_tepesch 2014年

我以为我的问题具有同样的性质。我有两个工作区,其中一个很旧。我在一个新的内部工作,创建了解决方案,添加了项目。除非我没有关闭解决方案,否则一切都很好。但是,如果我保存了解决方案并尝试打开它,VS总是尝试从旧工作区中映射的目录中加载解决方案中的项目。
BackToSorrento 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.