473 votos

Comparar dos archivos en Visual Studio

He visto la nueva herramienta de comparación en Visual Studio 2012 para comparar dos archivos o dos versiones de un archivo. Me gusta. Pero cuando traté de encontrarlo no pude, porque no uso TFS .

¿Hay alguna manera de comparar dos archivos con la función incorporada en Visual Studio (pero sin TFS)?

2 votos

Sólo como comentario para su uso posterior: Si trabajas con vs2015, utiliza este enlace: visualstudio.com/es-us/docs/tfvc/compare-files

0 votos

Nota esto sigue siendo aplicable para VS 2017. Por lo tanto, he proporcionado un responder cómo tratar este tema cómodamente.

2 votos

Ninguna de las respuestas puede comparar dos archivos ya abierto en Visual Studio.

884voto

Vladimir Reshetnikov Puntos 2613

Puede invocar devenv.exe /diff list1.txt list2.txt desde el símbolo del sistema de Visual Studio Developer o, si ya se está ejecutando una instancia de Visual Studio, puede escribir Tools.DiffFiles en el Ventana de comandos con un práctico completador de nombres de archivos:

Using Tools.DiffFiles from the Visual Studio Command window

20 votos

¿Esta herramienta de comparación ofrece alguna función útil como copiar a la izquierda, copiar a la derecha, etc.? Cuando difiero la copia de trabajo con la versión del servidor, a veces deseo deshacer algunos de los cambios y tengo que hacer un pegado manual de la copia.

142 votos

¿Por qué está oculta esta función en la interfaz de usuario de VS? Es la forma más fácil y eficaz de comparar dos archivos...

8 votos

Si su ruta tiene espacios, puede envolver toda la ruta o sólo la parte con espacios entre comillas.

110voto

Matt Puntos 3445

Inspirado por Respuesta de Vladimir Reshetnikov arriba, encontré una manera muy cómoda de cómo puedes comparar instantáneamente dos archivos con Visual Studio usando arrastrar y soltar o a través del "Enviar a" menú contextual. Sólo requiere un poco de preparación que hay que hacer una vez y luego es útil como una navaja suiza.

Estudio visual ya tiene todo lo que necesita, y sólo hay algunos pasos de configuración necesarios para que esto funcione:

Comparación de archivos mediante la función de arrastrar y soltar

Preparación:

  1. Crear un nuevo archivo por lotes utilizando su editor de texto favorito. Escriba lo siguiente:

    @echo off
    setlocal
    set vspath=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE
    start "Compare files" /B /MIN "%vspath%\devenv.exe" /diff %2 %1 First:'%2' Second:'%1'

    Puede notar que he invertido el %1 y %2 parámetros en el lote. Esto es porque me di cuenta de que el explorador de archivos pasa el segundo archivo como primer parámetro, y luego el primer archivo como segundo parámetro.

  2. Guarde este código como VS_FileCompare.cmd para utilizarlo, y modificar vspath si es necesario para que coincida con la ubicación de devenv.exe (según el Versión de Visual Studio que está utilizando actualmente, consulte nota a pie de página *) )

  3. O bien crear un acceso directo llamado "Comparación de archivos" para VS_FileCompare.cmd y colocarlo en el escritorio (como se utiliza en la animación de abajo), por lo que siempre está disponible para arrastrar y soltar archivos en él o colocar directamente el archivo por lotes en el escritorio. Eso es todo.

Uso:

  1. Abrir el Explorador de Windows a través de Win + E

  2. Seleccione dos archivos para comparar en el explorador

  3. Arrástrelos y suéltelos como se muestra en la siguiente animación:

    DragDropDemo

  4. Después de unos segundos (dependiendo del tiempo de lanzamiento de Visual Studio), los resultados se mostrarán en Visual Studio:

    Visual Studio View

Nota: No perjudica si Visual Studio ya está abierto. En este caso, sólo se abrirá una nueva ventana dentro de la instancia de Visual Studio que se esté ejecutando. Así que usted puede comparar múltiples pares de archivos, pero por favor asegúrese de que ha seleccionado sólo dos archivos a la vez.


Forma alternativa: Menú contextual "Enviar a".

Esta es una alternativa para utilizar el archivo por lotes VS_FileCompare.cmd mencionado en la sección anterior. Permite utilizar el menú contextual de Enviar a la carpeta para comparar los archivos.

Preparación:

  1. Crear un acceso directo "Compare2Files VS" para el archivo por lotes VS_FileCompare.cmd y copiarlo en el Enviar a carpeta. Abra la carpeta Explorador de Windows a través de Win + E
  2. Abrir el Enviar a introduciendo shell:sendto en la barra de direcciones del explorador de archivos (como se describe aquí ). A continuación, ponga el acceso directo preparado en esta carpeta.

Uso:

  1. Abrir el Explorador de Windows a través de Win + E

  2. Seleccione dos archivos para comparar en el explorador

  3. Suponiendo que el acceso directo para el archivo por lotes VS_FileCompare.cmd se llama "Compare2Files VS" puede seleccionar los dos archivos, hacer clic con el botón derecho y seleccionar Enviar a → Compare2Files VS para invocar la comparación como se muestra a continuación:

    SendTo

  4. Después de unos segundos (dependiendo del tiempo de lanzamiento de Visual Studio), los resultados se mostrarán en Visual Studio:

    Visual Studio View

SUGERENCIA: Si te gusta el enfoque de la carpeta SendTo, hay más cosas que puedes hacer - por ejemplo, puedes abrir un comando Shell directamente a través de SendTo y se inicia con la ruta correcta (la ruta donde reside el archivo seleccionado). Mira aquí para saber cómo hacerlo . Incluso puedes combinarlo con el script para obtener derechos elevados con sólo un poco de esfuerzo adicional.


Referencias de MSDN:


*)   Nota a pie de página: Porque vsPath (la ruta de acceso a DEVENV.exe ) difiere en función de tu versión de Visual Studio, te describo cómo puedes averiguarlo (Windows 10):

  1. En el Menú de inicio de Windows Windows Icon Small , localice el Icono de Visual Studio Visual Studio Icon Small

  2. Haga clic con el botón derecho del ratón para que aparezca el menú contextual. Seleccione MásUbicación del archivo abierto .
    El Explorador de Windows se abre con el acceso directo a Visual Studio resaltado.

  3. Haga clic con el botón derecho del ratón en Visual Studio y seleccione Propiedades

  4. En el diálogo de propiedades, puede encontrar la ruta en "Objetivo:"

    VSProperties

12 votos

Esta es realmente una respuesta muy buena y elaborada, definitivamente debería ser votada. Soy del grupo que sigue buscando una respuesta fuera de la caja, incluso si la respuesta está marcada en un hilo, así que estoy absolutamente dando cabezas para arriba.

3 votos

@DivTiwari - ¡Gracias, me alegro de oírlo!

0 votos

Edit: Este es el script para VS 2013, gracias de nuevo. @echo off setlocal set vspath= C:\Program Archivos (x86) \Microsoft Visual Studio 12.0 \Common7\IDE start "Comparar archivos" /B /MIN "%vspath%". \devenv.exe " /diff %2 %1 Primero:'%2' Segundo:'%1'

80voto

Jarek Kardas Puntos 6956

Puede probar el VSCommands de la Galería de Visual Studio .

El última versión le permite seleccionar dos archivos y compararlos:

Enter image description here

Enter image description here

1 votos

He instalado las extensiones, pero esta opción no está disponible para mí.

3 votos

VSCommands 14 no añade ninguno de los elementos de la captura de pantalla en la Comunidad VS 2015 Update 1

45voto

Frank Hale Puntos 136

(Ventana de comandos) ( Ctrl + Alt + A ):

Tools.DiffFiles File1 File2

0 votos

Esto es lo mismo que otra respuesta

11 votos

Tal vez - aunque personalmente prefiero usar una GUI para seleccionar los archivos que tener que construir dos rutas en cualquier caso - quiero decir que no es 1984.

1 votos

¡gracias, esta es de lejos la solución más simple aquí! @nico Realmente no entiendo su punto, ¿es usted un programador (que el tipo de código también) o simplemente desea utilizar el estudio visual para comparar los archivos?

26voto

Siempre he sido un fan de WinMerge que es un proyecto de código abierto. Se puede conectar a Visual Studio con bastante facilidad.

http://blog.paulbouwer.com/2010/01/31/replace-diffmerge-tool-in-visual-studio-team-system-with-winmerge/

le mostrará cómo hacerlo

0 votos

También puede diferenciar carpetas - muy potente

2 votos

La única desventaja de WinMerge es su limitada capacidad para reconocer cambios (como espacios en blanco, líneas divididas en más líneas, etc.)

0 votos

El enlace está roto: "Tenemos problemas para encontrar ese sitio. No podemos conectar con el servidor de blog.paulbouwer.com".

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X