2009-08-31 179 views
9

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

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

回答

11

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

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

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

+0

在Vista上使用VS2008时,我删除了Solution.sln.cache文件以达到同样的效果。 – willoller 2010-02-08 17:05:33

+0

适用于Server 2008上的VS2010。 – weenoid 2012-05-02 10:58:17

+2

我不认为删除.suo是一个好主意。对我来说,关闭VS并再次打开解决了这个问题。 – 2017-02-01 12:21:44

1

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

Visual Studio有一个不变的情况,即一次只能打开给定路径的单个文件。当你在你的项目/解决方案中有一个链接文件并试图打开原来的链接引用和其中一个链接的引用时,这个不变是最常见的。

+0

没有链接的文件AFAIK。 – 2009-08-31 21:30:20

2

删除名为.suo隐藏文件并编辑的.csproj文件,删除下面几行:

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

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

+0

这对我有用,有一个项目,我已经从Subversion切换到Git。删除vbproj文件中的这些行解决了这个问题。 – 2016-10-18 07:10:02

-1

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

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

是最有可能产生这些线路由于项目被添加到视觉SVN即当项目/溶液加入到源代码控制项目/解决方案文件被更新以包括源代码控制集成信息,并且这些行被添加,这导致问题。

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

+0

VisualSVN不会将这些行写入项目文件。 – bahrep 2017-07-19 06:39:11

+0

你是正确的,这就是我写的,它很可能是由visual svn创建的,尽管案例是当您将解决方案/项目添加到源代码控制中时,解决方案/项目文件将被更新为包含源代码控制集成信息。并在此期间添加上面的行。 - 虽然看到编辑答案。 – 2017-07-19 10:32:35

+1

我很抱歉,但我不明白。 VisualSVN插件不会将这些行添加到项目或解决方案文件中。我记得AnkhSVN补充了他们。你可以尝试一个干净的项目。 :) – bahrep 2017-07-19 11:16:58

相关问题