Visual Studio - 修复错误“该名称的文件已打开”

时间:2009-08-31 20:54:21

标签: visual-studio visual-studio-2008

偶尔(通常在源代码管理中更新我的.sln文件后)我得到一个奇怪的Visual Studio错误,其中我无法打开我的一些文件。有问题的文件显示在相应的项目中,但尝试打开它们会导致出现错误对话框,说“该文件的文件已经打开。”

这几乎与Why does it say "Project with that name already opened in the solution"?完全相同,除了文件,而不是项目。给出的解决方案并没有解决这个问题。

4 个答案:

答案 0 :(得分:11)

Visual Studio在内部维护当前打开的文件列表,以避免因多次打开文件而导致的问题。任何数量的事情(崩溃,重新启动,更新VS之外的源代码管理中的文件)都可能导致此列表损坏。

在任何情况下,都可以通过删除与Solution.suo文件位于同一目录中的隐藏Solution.sln文件来解决问题。这将导致您丢失当前的工作空间状态(打开文件,窗口布局等),但不会对您的解决方案产生任何其他不利影响。

这是一个隐藏文件,因此要查看或删除它,您必须启用在资源管理器中查看隐藏文件或在命令行上使用del /AH Solution.suo

答案 1 :(得分:3)

删除隐藏的.suo文件并编辑.csproj文件以删除以下行:

<SccProjectName>Svn</SccProjectName>
<SccLocalPath>Svn</SccLocalPath>
<SccAuxPath>Svn</SccAuxPath>
<SccProvider>SubversionScc</SccProvider>

现在,重新打开解决方案以解决问题。

答案 2 :(得分:1)

解决方案中是否有任何链接文件?

Visual Studio具有一个不变量,即一次只能打开给定路径的单个文件。当您在项目/解决方案中有链接文件并尝试打开原始链接引用和其中一个链接引用时,最常出现此不变量。

答案 3 :(得分:-1)

打开项目的csproj文件并删除以下行:

<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>

这些行很可能是由于项目被添加到可视化svn而创建的,即当项目/解决方案被添加到源控件项目/解决方案文件时更新为包括源控件集成信息,并且这些行被添加导致问题。

删除这些行并重新加载您的项目(或解决方案),这应解决问题。