2009-08-31 22 views
9

Ocasionalmente (generalmente después de haber actualizado mi archivo .sln en el control de código fuente) recibo un extraño error de Visual Studio en el que no puedo abrir algunos de mis archivos. Los archivos en cuestión aparecen en el proyecto apropiado, pero al tratar de abrirlos se genera un cuadro de diálogo de error que dice "Un archivo con ese nombre ya está abierto".Visual Studio - Solucionando el error "Un archivo con ese nombre ya está abierto"

Esto es virtualmente idéntico a Why does it say "Project with that name already opened in the solution"?, excepto archivos, no proyectos. La solución dada allí no soluciona esto.

Respuesta

11

Visual Studio internamente mantiene una lista de los archivos actualmente abiertos, para evitar problemas causados ​​por la apertura de archivos más de una vez. Cualquier cantidad de cosas (bloqueos, reinicios, actualización de archivos en el control de código fuente fuera de VS) puede ocasionar la corrupción de esta lista.

En cualquier caso, el problema se puede solucionar eliminando el archivo oculto Solution.suo que se encuentra en el mismo directorio que su archivo Solution.sln. Esto hará que pierda su estado de espacio de trabajo actual (archivos abiertos, diseño de ventana, etc.), pero no tendrá ningún otro efecto adverso en su solución.

Este es un archivo oculto, por lo que para verlo o eliminarlo debe habilitar la visualización de archivos ocultos en el Explorador o usar del /AH Solution.suo en la línea de comandos.

+0

Utilizando VS2008 en Vista, eliminé el archivo Solution.sln.cache con el mismo efecto. – willoller

+0

Funciona para VS2010 en Server 2008. – weenoid

+2

No creo que la idea de eliminar .suo sea buena. Para mí, simplemente cerrar VS y abrirlo de nuevo resuelve el problema. –

1

¿Tiene algún archivo vinculado en la solución?

Visual Studio tiene un invariante que solo un archivo de una ruta determinada puede abrirse al mismo tiempo. Este invariante es golpeado más a menudo cuando tiene un archivo vinculado en su proyecto/solución e intenta abrir tanto el original como una de sus referencias vinculadas.

+0

No hay archivos vinculados AFAIK. –

2

eliminar el archivo oculto .suo y editar el archivo .csproj para eliminar las líneas a continuación:

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

Ahora, vuelva a abrir la solución para resolver el problema.

+0

Esto funcionó para mí, tenía un proyecto que había cambiado de Subversion a Git. La eliminación de esas líneas en el archivo vbproj resolvió este problema. –

-1

archivo csproj abierto del proyecto y eliminar siguientes líneas:

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

Estas líneas están muy probablemente crearon debido a la proyecto se agrega a Visual SVN es decir, cuando se añade proyecto/solución a los archivos de proyecto/solución de control de origen se actualizan para incluir información de integración de control de origen y estas líneas se agregan lo que causa problemas.

Borre estas líneas y simplemente vuelva a cargar su proyecto (o solución), esto debería solucionar el problema.

+0

VisualSVN no escribe estas líneas en archivos de proyecto. – bahrep

+0

tiene razón y es lo que yo escribí que probablemente es creado por svn visual, aunque el caso es que cuando agrega una solución/proyecto al control de fuente, el archivo de solución/proyecto se actualizará para incluir la integración de control de fuente información y durante este tiempo se agregan las líneas anteriores. - aunque vea la respuesta editada. –

+1

Lo siento mucho, pero no entiendo. El complemento VisualSVN no agrega estas líneas a los archivos de proyectos o soluciones. Recuerdo que AnkhSVN los agrega, sin embargo. Puede intentarlo usted mismo con un proyecto limpio. :) – bahrep

Cuestiones relacionadas