it-swarm-es.tech

¿Debo agregar los archivos de Visual Studio .suo y .user al control de origen?

Las soluciones de Visual Studio contienen dos tipos de archivos de usuario ocultos. Uno es el archivo de solución .suo que es un archivo binario. El otro es el archivo del proyecto .user que es un archivo de texto. ¿Exactamente qué datos contienen estos archivos?

También me he estado preguntando si debería agregar estos archivos al control de origen (Subversion en mi caso). Si no agrego estos archivos y otro desarrollador comprueba la solución, ¿Visual Studio creará automáticamente nuevos archivos de usuario?

804
Ben Mills

Estos archivos contienen configuraciones de preferencias del usuario que son, en general, específicas de su máquina, por lo que es mejor no ponerlas en SCM. Además, VS lo cambiará casi cada vez que lo ejecute, por lo que el SCM siempre lo marcará como 'cambiado'. Yo tampoco incluyo, estoy en un proyecto que usa VS por 2 años y no tuve problemas para hacerlo. La única pequeña molestia es que los parámetros de depuración (ruta de ejecución, objetivo de implementación, etc.) se almacenan en uno de esos archivos (no sé cuál), por lo que si tiene un estándar para ellos, no podrá hacerlo. publíquelo a través de SCM para que otros desarrolladores tengan todo el entorno de desarrollo "listo para usar".

645
Fabio Ceconello

No necesita agregarlos, ya que contienen configuraciones por usuario, y otros desarrolladores no querrán su copia.

133
Steve Cooper

Otros han explicado por qué no es una buena idea tener los archivos *.suo y *.user bajo el control de código fuente.

Me gustaría sugerirle que agregue estos patrones a la propiedad svn:ignore por 2 razones:

  1. Así que otros desarrolladores no terminarán con la configuración de un desarrollador.
  2. Por lo tanto, cuando vea el estado o los archivos de confirmación, esos archivos no saturarán la base del código ni ocultarán los nuevos archivos que necesita agregar.
66
JXG

No confirmamos el archivo binario (* .suo), pero confirmamos el archivo .user. El archivo .user contiene, por ejemplo, las opciones de inicio para depurar el proyecto. Puede encontrar las opciones de inicio en las propiedades del proyecto en la pestaña "Depurar". Usamos NUnit en algunos proyectos y configuramos el nunit-gui.exe como la opción de inicio para el proyecto. Sin el archivo .user, cada miembro del equipo tendría que configurarlo por separado.

Espero que esto ayude.

48
Thomas

Desde que encontré esta pregunta/respuesta en Google en 2011, pensé que me tomaría un segundo y agregaría el enlace para los archivos * .SDF creados por Visual Studio 2010 a la lista de archivos que probablemente no deberían agregarse al control de versiones ( el IDE los volverá a crear). Como no estaba seguro de que un archivo * .sdf pudiera tener un uso legítimo en otra parte, solo ignoré el archivo específico [projectname] .sdf de SVN.

¿Por qué el asistente de conversión de Visual Studio 2010 crea un archivo de base de datos SDF masivo?

25
Stephen

No, no debe agregarlos al control de código fuente, ya que, como dijo, son específicos del usuario.

SUO (Opciones de usuario de la solución): registra todas las opciones que puede asociar con su solución para que cada vez que la abra, incluya las personalizaciones que haya realizado.

El archivo .user contiene las opciones de usuario para el proyecto (mientras que SUO es para la solución) y extiende el nombre del archivo del proyecto (por ejemplo, anything.csproj.user contiene la configuración de usuario para el proyecto anything.csproj).

22
JRoppert

De forma predeterminada, Visual SourceSafe de Microsoft no incluye estos archivos en el control de origen porque son archivos de configuración específicos del usuario. Seguiría ese modelo si está usando SVN como control de origen.

18
cori

Esta parece ser la opinión de Microsoft al respecto:

Agregar (y editar) .suo archivos al control de fuente

No sé por qué su proyecto almacena el DebuggingWorkingDirectory en el archivo suo. Si esa es una configuración específica del usuario, debe considerar almacenarla en el nombre de archivo * .proj.user. Si esa configuración se puede compartir entre todos los usuarios que trabajan en el proyecto, debe considerar almacenarlo en el archivo del proyecto.

¡Ni siquiera pienses en agregar el archivo suo al control de código fuente! El archivo SUO (opciones de usuario de solutón) está diseñado para contener configuraciones específicas del usuario y no debe compartirse entre los usuarios que trabajan en la misma solución. Si agregaría el archivo suo en la base de datos de scc, no sé qué otras cosas en IDE se romperá, pero desde el punto de vista del control de origen romperá la integración de scc de proyectos web. el complemento Lan vs Internet utilizado por diferentes usuarios para el acceso a VSS, e incluso podría hacer que el scc se rompa completamente (la ruta de la base de datos de VSS almacenada en un archivo suo que puede ser válida para usted puede no ser válida para otro usuario).

Alin Constantin (MSFT)

17
Scott W

Visual Studio los creará automáticamente. No recomiendo ponerlos en control de código fuente. Ha habido muchas ocasiones en las que el archivo SOU de un desarrollador local estaba causando que VS se comportara de forma errática en ese cuadro de desarrolladores. Eliminar el archivo y luego dejar que VS vuelva a crearlo siempre solucionaba los problemas.

11
Bloodhound

En el sitio web de MSDN , se establece claramente que

El archivo de opciones de usuario de solución (.suo) contiene opciones de solución por usuario. Este archivo no debe registrarse en el control de código fuente .

Así que diría que es bastante seguro ignorar estos archivos al registrar las cosas en el control de origen.

10
Farax

Yo no lo haria Cualquier cosa que pueda cambiar por "usuario" generalmente no es buena en el control de la fuente. .suo, .user, obj/bin directorios

8
ScaleOvenStove

Estos archivos son opciones específicas del usuario, que deberían ser independientes de la solución en sí. Visual Studio creará otros nuevos según sea necesario, por lo que no es necesario que estén registrados en el control de origen. De hecho, probablemente sería mejor no hacerlo ya que esto permite que los desarrolladores individuales personalicen su entorno como mejor les parezca.

7
benefactual

No puede controlar los archivos .user de origen, porque eso es específico del usuario. Contiene el nombre de la máquina remota y otras cosas dependientes del usuario. Es un archivo relacionado con vcproj.

El archivo .suo es un archivo relacionado con sln y contiene las "opciones para el usuario de la solución" (proyecto (s) de inicio, posición de Windows (qué está acoplado y dónde, qué está flotando), etc.)

Es un archivo binario, y no sé si contiene algo "relacionado con el usuario".

En nuestra empresa no tomamos esos archivos bajo control de código fuente.

6
ugasoft

Contienen las configuraciones específicas sobre el proyecto que normalmente se asignan a un solo desarrollador (como, por ejemplo, el proyecto de inicio y la página de inicio para comenzar cuando depura su aplicación).

Por lo tanto, es mejor no agregarlos al control de versiones, dejando que VS los vuelva a crear para que cada desarrollador pueda tener la configuración específica que desee.

6
massimogentilini

.user es la configuración del usuario, y creo que .suo es la solución para el usuario. No desea que estos archivos estén bajo control de código fuente; serán recreados para cada usuario.

4
Nick

Usando Rational ClearCase la respuesta es no. Solo el proyecto .sln &. * Proj debe registrarse en el control de código fuente.

No puedo responder por otros proveedores. Si recuerdo correctamente, estos archivos son opciones específicas de "usuario", su entorno.

3
titanae

No agregue ninguno de esos archivos en el control de versiones. Estos archivos se generan automáticamente con información específica de la estación de trabajo, si se incorporan al control de versiones que causará problemas en otras estaciones de trabajo.

1
Amila

No, no deben comprometerse con el control de la fuente, ya que son configuraciones locales específicas del desarrollador/máquina.

GitHub mantiene una lista de tipos de archivos sugeridos para que los usuarios de Visual Studio ignoren en https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

Para svn, tengo el siguiente conjunto de propiedades global-ignore:

* .DotSettings.User
*. onetoc2
*. suo
. vs
Web precompilada
thumbs.db
obj
compartimiento
depurar
*.usuario
*. vshost. *
*. tss
*. dbml.layout

0
Stephen Kennedy

Como se explica en otras respuestas, .suo y .user no deben agregarse al control de fuente, ya que son específicos de usuario/máquina (BTW .suo para las versiones más recientes de VS se trasladó al directorio temporal dedicado .vs, que debe mantenerse fuera de la fuente controlar completamente).

Sin embargo si su aplicación requiere una configuración del entorno para la depuración en VS (estas configuraciones generalmente se guardan en el archivo .user), puede ser útil preparar un archivo de muestra (nombrándolo como .user.SAMPLE) y agregarlo al control de origen para referencias.

En lugar de la ruta absoluta codificada en este archivo, tiene sentido usar las relativas o confiar en las variables de entorno, por lo que la muestra puede ser lo suficientemente genérica para que otros puedan reutilizarla fácilmente.

0
AntonK

Si configura las dependencias del directorio ejecutable en ProjectProperties> Debugging> Environment , las rutas se almacenan en archivos '.user'.

Supongamos que configuro esta cadena en el campo mencionado anteriormente: "PATH = C:\xyz\bin" Así es como se almacenará en el archivo '.user':

<LocalDebuggerEnvironment>PATH=C:\xyz\bin$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>

Esto nos ayudó mucho mientras trabajábamos en OpenCV. Podríamos usar diferentes versiones de OpenCV para diferentes proyectos. Otra ventaja es que fue muy fácil configurar nuestros proyectos en una nueva máquina. Solo teníamos que copiar los correspondientes directorios de dependencia. Así que para algunos proyectos, prefiero agregar el '.user' al control de código fuente.

Aunque es totalmente dependiente de los proyectos. Puede tomar una llamada en función de sus necesidades.

0
adheen