¿Cómo evitar que Visual Studio "siempre" revise los archivos de solución?

152

Aparentemente, sin razón, cada vez que abro mi solución, Visual Studio revisa el archivo sln.

Si lo comparo con la versión anterior no hay cambios. Pero esto es realmente frustrante ya que todos tienen la solución verificada.

Estoy usando VS 2008 y TFS 2008, ambos SP2.

¿Alguna idea de cómo puedo evitar que esto suceda? ¿O es una característica / error del proveedor de control de fuente TFS para VS?

CodeClimber
fuente
¿Tiene un proyecto de prueba unitaria como parte de la solución?
Mitch Wheat
1
TFS admite pagos simultáneos, y siempre que no haya modificaciones en el archivo .sln, los pagos múltiples no son un problema.
Dirk Vollmar el
55
Cuando los archivos * .sln tienen cambios reales, son una pesadilla horrible de fusionar porque los proyectos dentro de ellos reciben identificaciones arbitrarias pero no únicas. Soy un gran defensor de los pagos simultáneos, pero mantengo la mayoría de nuestros * .sln bloqueados.
Richard Berg el
3
¡ESTO ESTÁ FIJO EN VS2013! Abro la misma solución en 2012 y comprueba .sln, abro en 2013 y permanece claro.
felickz
2
He visto esto de vez en cuando con todas las versiones de Visual Studio 2010 y hasta la versión más reciente, Visual Studio 2015 Update 3. Ocurre aproximadamente la mitad de las veces que abro una solución, y parece ser más frecuente para las soluciones Con muchos proyectos.
Tore Østergaard

Respuestas:

121

Esto sucede cuando lo siguiente está en el archivo .sln:

GlobalSection(ExtensibilityGlobals) = postSolution
    MyGlobalProperty = AnyValue
EndGlobalSection

Encontré que Enterprise Library agregó uno de estos. Lo eliminé, verifiqué la solución, la cerré y la volví a abrir, y no más verificaciones automáticas.

Graham Clark
fuente
21
Parece que el paquete Unity NuGet puede haber hecho esto en mi archivo de solución en VS 2010. Eliminé esta sección y mi problema de pago automático se resolvió. Gracias Graham!
Dan Mork
14
dos de mis tecnologías favoritas - TFS y EntLib - qué par de queridas.
1
Tengo una sección de este tipo, pero no quiero eliminarla, ya que contiene datos que quiero conservar. ¿Y ahora qué? MS cerró este problema como "no reproducible" - ¿estúpido? connect.microsoft.com/VisualStudio/feedback/details/573538/…
mattanja
El comentario de Dan agrega la información necesaria, no es necesario eliminar todas las secciones globales, solo la parte que parece ser agregada por el paquete unit nuget.
Jordan0Day
sigue igual en 2012
BlackICE
6

Desde la memoria, si usa el menú Herramientas, Opciones y selecciona el panel Control de origen, Entornos , debería haber algunas opciones para configurar la forma en que el IDE interactúa con el control de versiones.

Creo que algunas de estas opciones controlan la comprobación del comportamiento abierto .

jussij
fuente
1
sí ... que le permiten comprobación automática, inmediata de la salida, o no hace nada ... pero nada que ayuda con este problema
CodeClimber
¿No puedes simplemente decir "no, no te vayas" cuando te lo pida?
Scott Marlowe
Desearía ser el único desarrollador en el equipo ... desafortunadamente no puedo confiar en que todos los desarrolladores sean diligentes
CodeClimber
CodeClimber, cada vez que inicia VS, realiza un check-out automático y desea que se detenga y apagar la opción de check-out automático no soluciona el problema. ¿Que?
veight
1
Para aquellos que no tienen los "Entornos" en su lista de opciones, cambie su conexión de "Local" a "Servidor" (fuente: stackoverflow.com/questions/26843300/… )
VenerableAgents
5

En caso de que, como yo, no pudieras hacerlo funcionar y descubrieras que uno o más proyectos también se verifican, encontré una solución más simple. Tome nota de los proyectos que sigue revisando. Vaya a Archivo - Control de origen - Cambiar control de origen y luego desvincule los proyectos en cuestión. Haga clic en Aceptar, Guardar todo, luego vuelva a Cambiar control de origen y vincule el proyecto a la solución. Esperemos que esto funcione para otros

usuario408720
fuente
3

Aunque, en primer lugar, no previene el problema, el uso liberal del comando "Deshacer cambios" de Team Foundation Power Tools (sorpresa sorpresa) deshacerá la edición pendiente si no se han realizado cambios.

Dave Roberts
fuente
Enlace actualizado para Team Foundation Power Tools: marketplace.visualstudio.com/…
Jaider
3

Permita el check-out y luego compare ambos archivos. Si VS agrega algo como

<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />

está experimentando un error de VS con una solución en VS2008 pero no portado a VS2005

Consulte este enlace para más detalles:

Luis Filipe
fuente
Ningún proyecto en la solución tiene esta línea de XML
CodeClimber
2

El archivo de la solución de Visual Studio se está desprotegiendo silenciosamente a través de uno o más proyectos de la solución utilizando la Biblioteca empresarial de Microsoft. Creo que esto tiene algo que ver con la Utilidad de configuración de la biblioteca empresarial que permite la administración de la configuración de los diversos bloques de aplicaciones. http : //msdn.microsoft.com/en-us/library/ff649479.aspx

Consulte esta publicación de comentarios de Microsoft: http://connect.microsoft.com/VisualStudio/feedback/details/737184/globalsection-extensibilityglobals-postsolution-checks-out-sln-file-on-open

Nigel Belham
fuente
gracias por el enlace Nigel, todo el equipo está experimentando este problema
Baldy
1

Es una característica / error de uno de los sistemas del proyecto que se está cargando dentro de la solución. Intente eliminar varios tipos de proyectos (C #, VB, C ++, sitio web, aplicación web, prueba unitaria, silverlight ...) hasta que desaparezca; Esa es tu respuesta.

Richard Berg
fuente
0

¿Estás guardando tus archivos antes de hacer la comparación? Sucedió conmigo hace algún tiempo y sigo diciendo que no hay cambios entre los archivos, pero después de un tiempo me doy cuenta de que no estaba guardando los archivos antes y se estaba comparando con la versión en el disco, no con la versión en la memoria.

Cada vez que abre alguna solución en Visual Studio, realiza algunas operaciones que pueden causar que sus archivos .sln o project cambien y luego le pedirá que revise el archivo. Ocurre cuando hay cambios en la estructura de carpetas en la máquina de los desarrolladores, o cuando no tienen las mismas versiones de todos los archivos. Tal vez alguien agregó un proyecto en alguna carpeta y otro desarrollador tiene el mismo proyecto en otro lugar. Otro caso que veo que sucede es cuando tenemos una solución con algunos proyectos de c ++, por alguna razón, uno de estos proyectos de c ++ tenía un archivo .res con rutas absolutas. Una vez que VS generó este archivo automáticamente, mantuvo el cambio de máquina de desarrollador a máquina de desarrollador.

Le sugiero que abra su archivo .sln y busque algunas rutas absolutas o por rutas relativas que pueden no existir en alguna máquina de desarrollador, dependiendo de qué archivos obtengan del control de origen.

Carlos
fuente