Compare dos archivos en Visual Studio

430

Vi una nueva herramienta de comparación en VS 2012 para comparar dos archivos o dos versiones de archivo. Me gusta. Pero cuando traté de encontrarlo no puedo porque no uso TFS. ¿Hay alguna manera de cómo puedo comparar dos archivos con la función integrada en VS pero sin TFS?

Libor Zapletal
fuente
1
Así como comentario para su uso posterior: Si está trabajando con vs2015, utilice este enlace: visualstudio.com/en-us/docs/tfvc/compare-files
Elnaz
Tenga en cuenta que esto todavía es aplicable para VS 2017. Por lo tanto, he proporcionado una respuesta sobre cómo abordar este problema cómodamente.
Matt
2
Ninguna de las respuestas puede comparar dos archivos ya abiertos en Visual Studio.
user3454439
1
Vote por esta característica aquí: developercommunity.visualstudio.com/content/idea/619706/…
Happypig375
En VS2017 y VS2019, incluso la barra de herramientas de comparación de archivos está abierta, no sé cómo usarla ... Usando VSCode ahora, simplemente abra los dos archivos y seleccione ambos y el menú contextual-> comparar seleccionados.
jw_

Respuestas:

809

Puede invocar devenv.exe /diff list1.txt list2.txtdesde el símbolo del sistema o, si ya se está ejecutando una instancia de Visual Studio, puede escribir Tools.DiffFilesen la ventana Comando, con un práctico nombre de archivo completado:

Uso de Tools.DiffFiles desde la ventana de comandos de Visual Studio

Vladimir Reshetnikov
fuente
15
¿Esta herramienta de diferencias proporciona alguna característica ú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 una copia manual pegada.
Samuel
118
¿Por qué esta característica está oculta de la interfaz de usuario de VS? Esta es la forma más fácil y efectiva de comparar dos archivos ...
eka808
76
Para aquellos de ustedes que son nuevos en Visual Studio, la ventana de comandos se puede abrir yendo a: Ver> Otras ventanas> Ventana de comandos (VS Pro 2013) o con CTRL + ALT + A
Cleanshooter
35
Es una pena que VS no tenga un elemento de menú para esta funcionalidad tan básica. muchos IDE / editores lo hacen.
rocío
15
Nota: En Visual Studio 2015, puede encontrarlo aquí: Ver -> Barras de herramientas -> Comparar archivos . Simplemente escriba "comparar" en la ventana de inicio rápido y lo agregará.
Matt
84

Inspirado por la respuesta aceptada arriba, encontré una manera muy cómoda de cómo comparar instantáneamente dos archivos con Visual Studio usando arrastrar y soltar o mediante el menú contextual "Enviar a" . Solo requiere un poco de preparación que debes hacer una vez y luego es útil como una navaja suiza.

Visual Studio ya tiene todo lo que necesita, solo se requieren algunos pasos de configuración para que esto funcione:

Comparación de archivos usando arrastrar y soltar

Preparación:

1. Cree 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 revertido los parámetros %1y %2en el lote. Esto se debe a que noté que el explorador de archivos pasa el segundo archivo como primer parámetro, luego el primer archivo como segundo parámetro.

2. Guarde este código VS_FileCompare.cmdpara usarlo, modifíquelo vspathsi es necesario para que coincida con la ubicación de devenv.exe(dependiendo de la versión de Visual Studio que esté usando actualmente, vea la nota al pie * )

3. Cree un acceso directo llamado "Comparación de archivos" para VS_FileCompare.cmdy coloque en el escritorio(como se usa en la animación a continuación), por lo que siempre está disponible para arrastrar y soltar archivos o colocar directamente el archivo por lotes en el escritorio. ¡Eso es todo!

Uso:

  1. Abra 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 animación a continuación: DragDropDemo

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

Nota: No hace daño si Visual Studio ya está abierto. En este caso, se abrirá una nueva ventana dentro de la instancia en ejecución de Visual Studio. Por lo tanto, puede comparar varios pares de archivos, pero asegúrese de haber seleccionado solo 2 archivos a la vez.


Forma alternativa: menú contextual Enviar a

Aquí hay una alternativa sobre cómo puede usar el archivo por lotes VS_FileCompare.cmdmencionado en la sección anterior. Permite utilizar la carpeta Enviar a del menú contextual para comparar los archivos.

Preparación:

  1. Cree un acceso directo "Compare2Files VS" para el archivo por lotes VS_FileCompare.cmdy cópielo en la carpeta SendTo . Abra el explorador de Windows a través de Win+E
  2. Abra la carpeta SendTo ingresando shell:sendtoen la barra de direcciones del explorador de archivos (como se describe aquí ). Luego, coloque el acceso directo preparado en esta carpeta.

Uso:

  1. Abra 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.cmdse denomina "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: Enviar a

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


Referencias de MSDN:
- Uso de la ventana diff
- Parámetro Diff de Visual Studio


*)  Nota al pie: Debido a que vsPath(la ruta hacia DEVENV.exe) difiere según su versión de Visual Studio, estoy describiendo cómo puede encontrarlo (Windows 10):

  1. En el menú de inicio de Windows Icono de Windows pequeño , busque el icono de Visual Studio Visual Studio Icon Small
  2. Haga clic derecho para que aparezca el menú contextual. Seleccione Más> Abrir ubicación de archivo .
    El Explorador de Windows se abre con el acceso directo de Visual Studio resaltado.
  3. Haga clic derecho en Visual Studio y seleccione Propiedades
  4. En el cuadro de diálogo de propiedades, puede encontrar la ruta en "Destino:" VSProperties
Mate
fuente
55
Esta es realmente una respuesta muy buena y elaborada, definitivamente debería ser votada. Soy del grupo que sigue buscando respuestas listas para usar, incluso si la respuesta está marcada en un hilo, por lo que estoy dando aviso.
Div Tiwari
1
@DivTiwari - ¡Gracias, me alegra escuchar eso!
Matt
Editar: Este es el script para VS 2013, gracias de nuevo. @echo off setlocal set vspath = C: \ Archivos de programa (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE start "Comparar archivos" / B / MIN "% vspath% \ devenv.exe" / diff% 2% 1 Primero: '% 2' Segundo: '% 1'
Fernando Aguilar
1
Eso fue excelente y funcionó a las mil maravillas. Muchas gracias amigo
Sabbir Hassan
1
¡Agradable! votar esto ... simplemente me encanta la naturaleza 'hack' de esta solución. Gracias por compartir
Leo Gurdian
24

También hay una extensión de Visual Studio llamada CompareFiles , que no hace nada más que agregar la entrada "Comparar archivos" al menú contextual del explorador de soluciones. Invoca la herramienta de diferencias de Visual Studio incorporada.

En caso de que alguien (como yo) no quiera instalar una extensión todo en uno como VSCommands ...

Stephan
fuente
1
NB: esta extensión es solo para VS2012, pero puede editar el archivo de manifiesto para que sea compatible con VS2013 con bastante facilidad; consulte mi comentario en la pestaña Preguntas y respuestas de la extensión para obtener más detalles. (Quería esta función, pero no puedo usar la versión gratuita de VSCommands en el trabajo debido a su licencia)
James S
Visual Studio Comparison Tools está disponible para 2013, visualstudiogallery.msdn.microsoft.com/…
Alineado el
23

VS2019->View->Other Windows->Command Window (Ctrl + Alt + A)

Tools.DiffFiles File1 File2
Patricio
fuente
Esto es lo mismo que otra respuesta
niico
55
Tal vez, aunque personalmente prefiero usar una GUI para seleccionar los archivos que el tipo que tengo que construir dos rutas en cualquier caso, quiero decir que no es 1984.
niico
18

En Visual Studio 2012, 2013, 2015, también puede hacerlo con Web Essentials , simplemente haga clic derecho en los archivos y desde el menú contextual> Web Essential >> Diferenciar archivos seleccionados:

Editar: ahora está disponible como una extensión separada

ingrese la descripción de la imagen aquí

Hamid Mosalla
fuente
No veo diferenciar archivos seleccionados o compilar Markdown a HTML en Web Essential - VS 2015
útilBee
He instalado una nueva versión VS 2015pero no puedo ver la Diff selected filesopción ¿por qué?
shaijut
@stom instala la extensión que mencioné.
Hamid Mosalla
8

En Visual Studio Code puedes:

  • Ve a la Explorer
  • Haga clic derecho en el primer archivo que desea comparar
  • Seleccione Select for compare
  • Haga clic derecho en el segundo archivo que desea comparar
  • Seleccione Compare with '[NAME OF THE PREVIOUSLY SELECTED FILE]'
jahller
fuente
Esto funciona maravillosamente en Visual Studio Code como usted mencionó, pero lamentablemente no funciona en Visual Studio Enterprise (ni Professional).
Eptin
4

ACTUALIZADO: Para el complemento VS 2019 File Differ Permitir comparar archivos en proyectos distintos ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Puedes instalarlo desde aquí:

ingrese la descripción de la imagen aquí

ANTIGUO: Para VS 2017, instale https://marketplace.visualstudio.com/items?itemName=vs-publisher-457497.FileComparer2017

El problema es que no puede comparar archivos en diferentes proyectos, pero puede copiar los archivos en el mismo proyecto para comparar ...

Diferencia de archivo

Juan Pablo
fuente
1
Desafortunadamente, esto no funciona cuando intenta comparar dos archivos sin solución (por ejemplo, cuando abre VS2017 en modo carpeta: Abrir - Carpeta)
Yury Kozlov
2

Yo tuve este problema también. No TFS, pero este artículo me pareció útil .

Específicamente, paso 1b.

Abra un símbolo del sistema de Visual Studio y vaya a la carpeta Common7 / IDE y escriba

tf diff /configure
billb
fuente
0

File Comparer VS Extension de Akhil Mittal. Excelente herramienta ligera que hace el trabajo.

útilBee
fuente
0

Para comparar dos archivos y combinarlos en un solo archivo. Estos son los siguientes pasos que puede seguir si tiene instalado Visual Studio (cualquier versión).

Paso 1: abra el símbolo del sistema de Visual Studio. Si no encuentra el símbolo del sistema de Visual Studio, elija las herramientas de Visual Studio

Inicio -> Símbolo del sistema de Visual Studio

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Paso 2: Ingrese el comando vsdiffmerge.exe

Ignora el interruptor / m si solo necesitas una comparación.

Sintaxis 1:
vsdiffmerge <archivo1> <archivo2> <archivo1> <archivo de salida> / t / m

Sintaxis 2:
vsdiffmerge <basefilename> <CompareFilename> <basefilename> <OutputFilename> / t / m

Ejemplo 1:
vsdiffmerge test1.js test2.js test1.js output.js / t / m
Ejemplo 2:
vsdiffmerge.exe "C: \ Users \ livingston \ Downloads \ wa \ wa \ Files \ pre \ Test.js" "C : \ Users \ livingston \ Downloads \ wa \ wa \ Files \ Prod \ Test.js "" C: \ Users \ livingston \ Downloads \ wa \ wa \ Files \ pre \ Test.js "" C: \ Users \ livingston \ Descargas \ wa \ wa \ Archivos \ salida \ samp.js "/ t / m

ingrese la descripción de la imagen aquí


Paso 3: fusionar los archivos

ingrese la descripción de la imagen aquí Tenga en cuenta que si el nombre de archivo no existe en la ubicación, un viaje no abrir el comparador.

También puede embellecer el archivo antes de hacer la comparación. En el estudio visual Ctrl + K + D.

Hay muchos sitios de embellecedores disponibles en línea.

George Livingston
fuente
0

El código de Visual Studio es excelente para esto: abra una carpeta, haga clic derecho en ambos archivos y compare.

niico
fuente
0

En Visual Studio, se puede llamar al Diff usando Command Windowy luego Tools.DiffFilescomando

  1. Abierto Command Windowpor teclas de acceso rápido Ctrl + W, Ao por menúView -> Other Windows -> Command Window
  2. Introducir comando Tools.DiffFiles "FirstFile.cs" "SecondFile.cs"
Kiryl Khadanovich
fuente
-2

Creo que esta es una de las mejores extensiones para Visual Studio 2012, se llama Code Compare y se puede encontrar aquí.

Opster Elasticsearch - Nathan
fuente
-4

Si está trabajando con TFS conectado, haga clic derecho en el archivo que necesita comparar (a través del explorador de control de código fuente) y le presentará una ventana como esta: ingrese la descripción de la imagen aquí

Ahora cambie la ruta del archivo fuente en 'Souce Path:' y obtendrá la comparación a través de la herramienta de comparación VS.

Del mismo modo, también puede comparar la carpeta que compara todos los archivos de una carpeta a la vez.

Chetan Naithani
fuente
2
Si lees la publicación original, él dice específicamente: "¿Hay alguna manera de cómo puedo comparar dos archivos con la función incorporada en VS pero sin TFS?" Su respuesta requiere que tenga TFS.
CigarDoug
aunque intentó responder ... aunque su intento fue incorrecto +1
Irf