2009-08-31 181 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

相關問題