2009-08-31 10 views
9

Occasionalmente (di solito dopo aver aggiornato il mio file .sln nel controllo sorgente) ottengo uno strano errore di Visual Studio in cui non riesco ad aprire alcuni dei miei File. I file in questione vengono visualizzati nel progetto appropriato, ma provando ad aprirli viene visualizzata una finestra di errore che dice "Un file con quel nome è già aperto".Visual Studio - Correzione dell'errore "Un file con quel nome è già aperto"

Questo è praticamente identico a Why does it say "Project with that name already opened in the solution"?, ad eccezione dei file, non dei progetti. La soluzione fornita non è stata risolta.

risposta

11

Visual Studio mantiene internamente un elenco di file attualmente aperti, per evitare problemi causati dall'apertura di file più di una volta. Qualsiasi numero di cose (arresti anomali, riavvii, aggiornamento di file nel controllo sorgente al di fuori di VS) può causare il danneggiamento di questo elenco.

In ogni caso, il problema può essere risolto eliminando il file nascosto Solution.suo che si trova nella stessa directory del file Solution.sln. Ciò causerà la perdita dello stato attuale dell'area di lavoro (file aperti, layout della finestra, ecc.), Ma non avrà altri effetti negativi sulla soluzione.

Questo è un file nascosto, quindi per vederlo o cancellarlo è necessario abilitare la visualizzazione di file nascosti in Explorer o utilizzare del /AH Solution.suo sulla riga di comando.

+0

Utilizzando VS2008 su Vista, ho eliminato il file Solution.sln.cache con lo stesso effetto. – willoller

+0

Works per VS2010 su Server 2008. – weenoid

+2

Non riesco a trovare l'idea di eliminare il .suo. Per me basta chiudere VS e aprirlo di nuovo a risolvere il problema. –

1

Nella soluzione sono presenti file collegati?

Visual Studio ha un'invarianza che è possibile aprire solo un singolo file di un determinato percorso in una volta. Questo invariante viene colpito molto spesso quando si ha un file collegato nel progetto/soluzione e si tenta di aprire sia l'originale che uno dei suoi riferimenti collegati.

+0

Nessun file collegato AFAIK. –

2

Eliminare il file nascosto .suo e modificare il file Csproj per rimuovere le linee di seguito:

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

Ora, riaprire la soluzione per risolvere il problema.

+0

Questo ha funzionato per me, aveva un progetto che avevo passato da Subversion a Git. La rimozione di quelle righe nel file vbproj ha risolto questo problema. –

-1

Aprire il file csproj del progetto ed eliminare le righe seguenti:

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

Queste linee sono molto probabilmente creati a causa di progetto si aggiunge a Visual svn cioè quando si aggiunge progetto/soluzione per i file di progetto/soluzione di controllo di origine vengono aggiornati per includere informazioni sull'integrazione del controllo del codice sorgente e vengono aggiunte queste righe che causano problemi.

Eliminare queste righe e ricaricare il progetto (o la soluzione), questo dovrebbe risolvere il problema.

+0

VisualSVN non scrive queste righe nei file di progetto. – bahrep

+0

si è corretto e questo è quello che ho scritto che probabilmente è stato creato da svn visiva, anche se il caso è quando si aggiunge una soluzione/progetto nel controllo del codice sorgente, il file di soluzione/progetto verrà aggiornato per includere l'integrazione del controllo del codice sorgente Informazioni. e durante questo periodo vengono aggiunte le righe sopra. - però vedi la risposta modificata. –

+1

Mi dispiace molto, ma non capisco. Il plug-in VisualSVN non aggiunge queste linee ai file di progetto o di soluzione. Ricordo che AnkhSVN li aggiunge, però. Potresti provare tu stesso con un progetto pulito. :) – bahrep

Problemi correlati