Visual Studio 从某处检索到项目的不正确路径

Posted

技术标签:

【中文标题】Visual Studio 从某处检索到项目的不正确路径【英文标题】:Visual Studio retrieving an incorrect path to a project from somewhere 【发布时间】:2011-12-02 03:56:27 【问题描述】:

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”目录是另一个项目的主目录,其中包含几乎相同的文件夹结构。那么,现在我已经加载了如何更改项目路径的任何想法?已卸载项目属性中的路径字段不可用,即使项目已卸载? 我现在第二次遇到这个问题,但是这次我能够弄清楚分支项目针对的是原始文件夹,因为我使用了不同的连接字符串。第一次这很奇怪,导致visualstudio在源文件夹中的文件中调试,并将其与分支中的文件混合,甚至Log4net登录到原始文件夹!是否删除了解决方案 suo 文件,它现在只能正确访问分支文件。 我遇到了完全相同的问题。这并不像删除 suo 文件那么容易。我必须: 1. 从解决方案中删除有问题的项目。 2. 保存解决方案。 3.删除.suo 4.打开解决方案并重新添加项目。 删除 SUO 文件对我有用。 【参考方案1】:

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

【讨论】:

感谢您的回复。该项目未从解决方案中的任何其他项目中引用。你能解释为什么在文件中查找不起作用吗?根据我的经验,如果你给它一个“查找”的目录路径,而不是选择“整个解决方案”,它将搜索所有文件类型,除非明确告知只搜索某些文件类型? 对不起,你是对的,我以为你只对解决方案中的文件使用“在文件中查找”,而不是解决方案目录,我错过了。所以它应该工作。当错误消息确切弹出时,您能否给出更详细的描述?是不是在编译的时候出现,所以可以看看是哪个项目编译失败了?【参考方案2】:
    转到管理工作区(通过文件/源代码管理菜单或源代码管理资源管理器中的工作区下拉菜单) 为您的工作区选择编辑。 您应该会在工作文件夹下看到源的映射 控制目录到旧的/错误的项目目录。 选择它并点击删除。 关闭VS并删除suo文件。

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

【讨论】:

另外,请不要被源代码管理资源管理器中的本地路径链接所迷惑。我的工作区有不止一个映射,它显示了我的期望,但是当它尝试加载项目时,它使用的是另一条路径。 .suo 文件已隐藏,因此您需要启用“显示所有文件和文件夹”选项 在 Visual Studio 2015 中,我遇到了同样的错误。对我有用的是删除隐藏的 .vs 目录和 .suo 文件。 对于 VS2015,您的 .suo 文件可能不是您想的那样。删除与您的.sln 文件一起存在的那个(不要忘记“显示隐藏文件”),还有一个隐藏在.\.vs\[solution_name]\v14\.suo 的子目录中。一旦我得到了它们,我就可以再次添加该项目。糟糕——部分归功于@DanielLeiszen(只是注意到他评论了同样的事情) 我不得不删除 .suo 文件重新启动 VS 以保持理智【参考方案3】:

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

【讨论】:

【参考方案4】:

在从 Visual Source Safe 2005 迁移到 TFS 2012 后,我遇到了这个问题。我迫不及待地想在接下来的几周内出现“转换向导”,所以我只运行了 VSSConvert.exe。这花费了 6 年左右的历史并将其移至 TFS 中。而我没有得到实际的时间线历史。我在同一天收到了一堆条目,其中 cmets 指示了历史的实际签入。 . 不错。

所以在它运行了一整夜之后(成功了,耶!),正如这个问题所说,我在加载我的项目时遇到了麻烦。出于某种原因,一些项目被引用到了不正确的目录。我检查了 .sln、.vsproj 文件,并获得了最新的、删除重新获取、添加删除等。我尝试了这里提到的所有内容......甚至升级了我的工作区,我不确定那甚至做了什么。

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

我在这个上花了几个小时。

【讨论】:

在删除 *.suo 文件之前,请确保关闭所有 Visual Studio 实例,然后再次打开解决方案。【参考方案5】:

我知道这是一句老话。我刚刚遇到了同样的问题。我们最近迁移了 TFS,所以我创建了一个新的工作区来映射到新的服务器并保留旧的。每次当我打开一个应该针对我的新工作区的解决方案时,VS 总是尝试从我的旧映射目录加载项目,直到我删除了我的旧工作区。

【讨论】:

这并没有真正为最初的问题提供任何帮助 我认为我的问题具有相同的性质。我有两个工作区,其中一个是旧的。我在新的工作中工作,并创建了解决方案,添加了项目。只有当我没有关闭解决方案时,一切都很好。但是如果我保存了解决方案并尝试打开它,VS 总是尝试从映射到我的旧工作区的目录中加载解决方案中的项目。【参考方案6】:

只需删除对我有用的解决方案.suo 文件。

【讨论】:

在 VS2015 中,我需要关闭所有 Visual Studio 实例,然后才能删除 <SolutionDir>\.vs\<SolutionName>\<VsVersion>\.suo 为我工作。【参考方案7】:

稍微不同的解决方案。

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

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

所做的工作只是简单地对项目执行“获取最新版本”。

这样做之后,新的代码副本被写入我的 C: 驱动器,并且(有趣的是)现在本地路径显示为 带下划线

以前,D: 路径不是这样显示的。

奇怪。很奇怪。

【讨论】:

对我来说完全一样的情况。由于路径不正确,我犹豫要不要扣动扳机并“获取最新消息”,但@Mike 给了我勇气!【参考方案8】:

在尝试了许多建议后,我删除了 suo 文件(再次)。最后一次工作。我不知道为什么它早些时候不起作用。一般来说,我发现删除 suo 文件是我做的第一步。

【讨论】:

【参考方案9】:

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

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

尝试清理临时文件夹但没有用。

什么有效:

关闭 Visual Studio 的所有实例

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

再次运行,断点开始命中。

【讨论】:

【参考方案10】:

即使在删除.suo 文件和.vs 文件夹之后,我也不得不编辑.sln 文件并从SccProjectName# 中删除旧的相对URL,尽管SccLocalPath# 是正确的。显然 VS 也使用名称作为提示路径。

【讨论】:

【参考方案11】:

尝试删除或重命名 .suo 文件(包括扩展名)。此文件与您的解决方案文件位于同一位置。它对我有用。

【讨论】:

【参考方案12】:

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

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

【讨论】:

【参考方案13】:

另一个解决方案对我们有用 - 在尝试删除 suo 以及该线程中提到的几乎所有内容之后。我们在解决方案中有一个项目,它显示了 csproj 文件的幽灵版本。我们删除了该文件,并且我们在尝试添加的另一个项目上修复了路径。

【讨论】:

【参考方案14】:

删除 obj 和 bin 文件即可解决问题...

【讨论】:

以上是关于Visual Studio 从某处检索到项目的不正确路径的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio安装程序项目扩展 - 安装服务

将crm 4插件项目从visual studio 2005升级到visual studio 2010

Visual Studio Express 2012 for Web TypeScript EcmaScript 版本

为啥我的项目没有从 Visual Studio 上传到 github?

从linux交叉编译到windows一个visual studio项目

使用 Visual Studio 6.0 从 XP 远程调试 NT 应用程序