2009-10-29 24 views
44

Soy nuevo en Visual C# Studio (en realidad usando la edición Express, pero otro desarrollador está usando la versión completa), y estamos usando el control de versiones (svn).¿Qué archivos en un proyecto de Visual C# Studio no necesitan ser versionados?

Me resulta aceptable agregar los archivos del proyecto al repositorio, ya que este repositorio es solo para nosotros dos que usamos Visual C# Studio. Pero parece que hay algunos archivos irrelevantes allí. ¿Puede alguien que esté familiarizado con los archivos del proyecto Visual C# Studio decirme qué archivos pueden ser svn: ignorados con seguridad?

Algunos archivos sospechosos:

  • project.csproj
  • project.csproj.Debug.cachefile
  • project.csproj.user
  • project.sln
  • project.suo
  • Contenido \ Content.contentproj

Estoy seguro de que se requiere .sln, pero ¿qué es esto .suo? y el .csproj? ¿Puede/debe alguno de estos ser generado por Visual C# Studio al cargar un proyecto?

+0

el ganglio centinela es el archivo de solución, la csproj es el archivo de proyecto de C#. Necesitará estos dos archivos. El suo es el archivo de opciones de usuario de la solución y, como su nombre indica, no desea ese archivo. Simplemente contiene opciones de usuario. Además, todos los archivos * .csproj. * También se pueden ignorar. – mrsheen

+0

http://msdn.microsoft.com/en-us/library/ee817674.aspx Lista explícita de Microsoft allí. – JMD

Respuesta

0

También trabajamos con Visual Studio C# y SVN y no conozco todos los archivos del proyecto, pero solo excluimos el directorio completo bin.

5

El archivo .sln define su solución junto con los archivos .proj (uno para cada proyecto), así que guárdelos en su svn!

Puede omitir el archivo .suo (configuración personal, binaria de todos modos), así como las carpetas bin u obj. También se pueden dejar los archivos .cache.

1

es necesario ...

* .sln - El archivo de solución contiene referencias a todos los proyectos y las dependencias entre los proyectos.
* .csproj - Los archivos del proyecto en sí. Estos indican qué archivos están incluidos en el proyecto, las referencias y los pasos de compilación para el proyecto.

No ...

* .suo - Este es un archivo de configuración de usuario ...

12

No debe ser versionado:

  • .csproj.user es archivo de proyecto del usuario configuración (por ejemplo, proyecto de inicio)
  • .suo es la configuración de archivo de la solución del usuario

En caso ser versionado:

  • .sln es el archivo de solución en sí (lo que lo proyecta contiene etc)
  • .csproj es el archivo de proyecto

No estoy seguro acerca de "contentproj" pero suena como si fuera un archivo de proyecto que debería estar bajo svn.

0

Definitivamente necesita archivos csproj ... Es posible que desee probar AnkhSVN o VisualSVN, esos complementos VS agregan solo los archivos necesarios a SVN.

O podría eliminar archivos de la estructura de su directorio hasta que ya no se carguen.

Sugiero experimentar de esta manera porque es una excelente manera de aprender cómo VS estructura las soluciones.

0

que dejar de lado el archivo de Visual Studio Solución Opciones de usuario (* .suo) y los directorios binarios a medida que se construye cada vez que su solución (la bin y obj carpetas) recompilan.

15

.csproj define la estructura del proyecto. Es vital.

Esto es lo añado a mi lista de ignorados global en Tortoise SVN:

*.suo *.user bin obj *.pdb *.cache *_svn *.svn *.suo *.user *.build-res TestResults _ReSharper* 
1

Sólo para añadir, cualquier cosa que consigue regenerarse en tiempo de compilación, se debe excluir. Por ejemplo, archivos generados a partir del evento prebuild o en algunos casos una herramienta personalizada.

+1

Ese no es siempre el caso. Los archivos generados por un SingleFileGenerator, más los archivos generados por el diseñador asociados con .xaml,.resx, y los formularios deben registrarse. –

+0

Es exactamente por eso que dije algunos casos. – leppie

0

Mire esto - type visualstudio y tendrá un archivo .gitignore generado para usted, también puede concatenar varios idiomas/ide 'ignorar archivos juntos si tiene una solución que contiene varios idiomas.

0

Como esto no ha indicado en otras respuestas aún:

En el caso está utilizando Visual Studio con Unity 3D, se puede agregar con seguridad tanto .csproj * y * .sln al archivo .gitignore , al contrario del caso habitual.

De hecho, la estructura del proyecto está gestionada por Unity, no por Visual Studio. Las únicas consecuencias de mantenerlos en control de fuente son los conflictos, más aún si, por alguna razón, se están utilizando diferentes versiones de Visual Studio entre los commiters.

Ejemplo .gitignore por la Unidad 3D: https://github.com/github/gitignore/blob/master/Unity.gitignore

Cuestiones relacionadas