Confronta due file in Visual Studio


430

Ho visto il nuovo strumento di confronto in VS 2012 per confrontare due file o due versioni di file. Mi piace. Ma quando ho provato a trovarlo non posso perché non uso TFS. C'è un modo come posso solo confrontare due file con la funzione integrata in VS ma senza TFS?


1
Proprio come commento per un ulteriore utilizzo: se stai lavorando con vs2015, usa questo link: visualstudio.com/en-us/docs/tfvc/compare-files
Elnaz

Nota che questo è ancora applicabile per VS 2017. Quindi, ho fornito una risposta su come affrontare questo problema comodamente.
Matt,

2
Nessuna delle risposte può confrontare due file già aperti in Visual Studio.
user3454439

1
Si prega di votare per questa funzione qui: developercommunity.visualstudio.com/content/idea/619706/…
Happypig375

In VS2017 e VS2019, anche la barra degli strumenti Confronta file è aperta, non so come usarla ... Usando VSCode ora, basta aprire i due file e selezionare entrambi e menu contestuale-> confronta selezionati.
jw_

Risposte:


809

È possibile richiamare devenv.exe /diff list1.txt list2.txtdal prompt dei comandi o, se un'istanza di Visual Studio è già in esecuzione, è possibile digitare Tools.DiffFilesnella finestra di comando, con un pratico completamento del nome file:

Utilizzo di Tools.DiffFiles dalla finestra dei comandi di Visual Studio


15
Questo strumento diff offre funzioni utili come copia a sinistra, copia a destra, ecc.? Quando diffaccio una copia di lavoro con la versione del server, a volte desidero annullare alcune delle modifiche e devo eseguire l'incollaggio manuale della copia.
Samuel,

118
Perché questa funzione è nascosta dall'interfaccia utente VS? Questo è il modo più semplice ed efficace per confrontare due file ...
eka808,

76
Per quelli di voi che sono nuovi a Visual Studio, la finestra di comando può essere aperta andando su: Visualizza> Altre finestre> Finestra di comando (VS Pro 2013) o con CTRL + ALT + A
Cleanshooter,

35
un vero peccato VS non ha una voce di menu per questa funzionalità di base. molti IDE / editor fanno.
Rugiada

15
Nota: in Visual Studio 2015, puoi trovarlo qui: Visualizza -> Barre degli strumenti -> Confronta file . Digita semplicemente "confronta" nella finestra di avvio rapido e otterrai l'aggiunta.
Matt,

84

Ispirato dalla risposta accettata sopra, ho trovato un modo molto comodo per confrontare istantaneamente due file con Visual Studio usando il trascinamento della selezione o tramite il menu di scelta rapida "Invia a" . Richiede solo una piccola preparazione che devi fare una volta e quindi è utile come un coltellino svizzero.

Visual Studio ha già tutto ciò di cui hai bisogno, ci sono solo alcuni passaggi di configurazione necessari per farlo funzionare:

Confronto dei file mediante trascinamento della selezione

Preparazione:

1. Creare un nuovo file batch utilizzando l'editor di testo preferito. Digita quanto segue:

@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'

Potresti notare che ho invertito i parametri %1e %2nel batch. Questo perché ho notato che Esplora file passa il secondo file come primo parametro, quindi il primo file come secondo parametro.

2. Salvare questo codice VS_FileCompare.cmdper usarlo, modificarlo vspathse necessario in modo che corrisponda alla posizione di devenv.exe(a seconda della versione di Visual Studio attualmente in uso, vedere la nota a piè di pagina *) )

3. O creare un collegamento denominato "Confronto file" per VS_FileCompare.cmde posizionare sul desktop(come utilizzato nell'animazione in basso), quindi è sempre disponibile per trascinare e rilasciare i file su di esso o posizionare direttamente il file batch sul desktop. È tutto!

Uso:

  1. Apri Windows Explorer tramite Win+E
  2. Seleziona due file da confrontare in Explorer
  3. Trascinali e rilasciali come mostrato nell'animazione di seguito: DragDropDemo

  4. Dopo alcuni secondi (a seconda del tempo di avvio di Visual Studio), i risultati verranno visualizzati in Visual Studio: Vista di Visual Studio

Nota: non danneggia se Visual Studio è già aperto. In questo caso, si aprirà una nuova finestra nell'istanza in esecuzione di Visual Studio. Quindi puoi confrontare più coppie di file, ma assicurati di aver selezionato solo 2 file alla volta.


Modo alternativo: Invia al menu contestuale

Ecco un'alternativa su come utilizzare il file batch VS_FileCompare.cmdmenzionato nella sezione precedente. Consente di utilizzare la cartella Invia a del menu di scelta rapida per confrontare i file.

Preparazione:

  1. Creare un collegamento "Compare2Files VS" per il file batch VS_FileCompare.cmde copiarlo nella cartella SendTo . Apri Windows Explorer tramite Win+E
  2. Apri la cartella SendTo accedendo shell:sendtoalla barra degli indirizzi di Esplora file (come descritto qui ). Quindi, inserire il collegamento preparato in questa cartella.

Uso:

  1. Apri Windows Explorer tramite Win+E
  2. Seleziona due file da confrontare in Explorer
  3. Supponendo che il collegamento per il file batch VS_FileCompare.cmdsia denominato "Compare2Files VS" , è possibile selezionare i due file, fare clic con il tasto destro e selezionare Invia a -> Compare2Files VS per richiamare il confronto, come mostrato di seguito: Inviare a

  4. Dopo alcuni secondi (a seconda del tempo di avvio di Visual Studio), i risultati verranno visualizzati in Visual Studio: Vista di Visual Studio


Riferimenti MSDN:
- Utilizzo della finestra diff
- Param Diff di Visual Studio


*)  Nota a piè di pagina: poiché vsPath(il percorso per DEVENV.exe) differisce a seconda della versione di Visual Studio, sto descrivendo come è possibile scoprirlo (Windows 10):

  1. Nel menu Start di Windows Icona Windows piccola , individuare l' icona di Visual Studio Icona di Visual Studio piccola
  2. Fare clic con il tasto destro per visualizzare il menu di scelta rapida. Seleziona Altro> Apri posizione file .
    Esplora risorse si apre con il collegamento di Visual Studio evidenziato.
  3. Fare clic con il tasto destro su Visual Studio e selezionare Proprietà
  4. Nella finestra di dialogo delle proprietà, puoi trovare il percorso in "Target:" VSProperties

5
Questa è davvero una risposta molto buona ed elaborata, sicuramente dovrebbe essere votata. Vengo dal gruppo che continua a cercare risposte fuori dagli schemi anche se la risposta è contrassegnata in un thread, quindi la sto assolutamente dando in testa.
Div Tiwari,

1
@DivTiwari - Grazie, felice di sentirlo!
Matt,

Modifica: questo è lo script per VS 2013, grazie ancora. @echo off setlocal set vspath = C: \ Programmi (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE start "Confronta file" / B / MIN "% vspath% \ devenv.exe" / diff% 2% 1 Primo: '% 2' Secondo: '% 1'
Fernando Aguilar,

1
È stato fantastico e ha funzionato come un fascino. Grazie mille
amico

1
Bello! votando a favore ... adoro la natura "hacker" di questa soluzione. Grazie per averlo condiviso.
Leo Gurdian,



24

Esiste anche un'estensione di Visual Studio chiamata CompareFiles , che non fa altro che aggiungere la voce "Confronta file" al menu di scelta rapida di Esplora soluzioni. Richiama lo strumento diff diffuso di Visual Studio.

Nel caso in cui qualcuno (come me) non volesse installare un'estensione all-in-one come VSCommands ...


1
NB: questa estensione è solo per VS2012, ma è possibile modificare il file manifest per supportare VS2013 abbastanza facilmente - per i dettagli vedere il mio commento sulla scheda Domande e risposte dell'estensione. (Volevo questa funzione, ma non posso usare la versione gratuita di VSCommands al lavoro a causa della sua licenza)
James S

Visual Studio Comparison Tools è disponibile per il 2013, visualstudiogallery.msdn.microsoft.com/…
Allineato il

23

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

Tools.DiffFiles File1 File2

Questa è la stessa di un'altra risposta
niico

5
Forse - anche se personalmente preferirei usare una GUI per selezionare i file che il tipo deve costruire due percorsi in ogni caso - voglio dire, non è il 1984.
Niico

18

In Visual Studio 2012, 2013, 2015, puoi anche farlo con Web Essentials , fai clic con il pulsante destro del mouse sui file e dal menu di scelta rapida> Web Essential >> Diff file selezionati:

Modifica: ora è disponibile come estensione separata

inserisci qui la descrizione dell'immagine


Non vedo i file Diff selezionati o compila Markdown in HTML in Web Essential - VS 2015
utileBee

Ho installato una nuova versione per VS 2015ma non riesco a vedere l' Diff selected filesopzione perché?
shaijut,

@stom installa l'estensione che ho citato.
Hamid Mosalla,


8

In Visual Studio Code puoi:

  • Vai al Explorer
  • Fare clic con il tasto destro del mouse sul primo file che si desidera confrontare
  • Selezionare Select for compare
  • Fare clic con il tasto destro sul secondo file che si desidera confrontare
  • Selezionare Compare with '[NAME OF THE PREVIOUSLY SELECTED FILE]'

Funziona meravigliosamente in Visual Studio Code come hai menzionato, ma purtroppo non in Visual Studio Enterprise (né Professional).
Eptin,


4

AGGIORNATO: Per VS 2019 File Differ Plugin Consenti di confrontare i file in progetti distinti inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Puoi installarlo da qui:

inserisci qui la descrizione dell'immagine

VECCHIO: per VS 2017 Installa https://marketplace.visualstudio.com/items?itemName=vs-publisher-457497.FileComparer2017

Il problema è che non è possibile confrontare i file in diversi progetti, ma è possibile copiare i file nello stesso progetto per confrontare ...

Differenza di file


1
Sfortunatamente, questo non funziona quando si tenta di confrontare due file senza soluzione (ad esempio, quando si apre VS2017 in modalità cartella: Apri - Cartella)
Yury Kozlov

2

Ho avuto anche questo problema. Nessun TFS, ma ho trovato utile questo articolo .

In particolare, passaggio 1b.

Aprire un prompt dei comandi di Visual Studio e accedere alla cartella Common7 / IDE e digitare

tf diff /configure

0

File Comparer VS Extension di Akhil Mittal. Eccellente strumento leggero per svolgere il lavoro.


0

Per confrontare due file qualsiasi e unirli in un file Ecco i seguenti passaggi che è possibile seguire se è installato Visual Studio (qualsiasi versione).

Passaggio 1: aprire il prompt dei comandi di Visual Studio. Se non trovi il prompt dei comandi di Visual Studio, scegli gli strumenti di Visual Studio

Avvia -> Prompt dei comandi di Visual Studio

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Passaggio 2: immettere il comando vsdiffmerge.exe

Ignora l'interruttore / m se hai bisogno solo di un confronto.

Sintassi 1:
vsdiffmerge <file1> <file2> <file1> <outputfile> / t / m

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

Esempio 1:
vsdiffmerge test1.js test2.js test1.js output.js / t / m
Esempio 2:
vsdiffmerge.exe "C: \ Users \ livingston \ Download \ wa \ wa \ Files \ pre \ Test.js" "C : \ Users \ livingston \ Download \ wa \ wa \ Files \ Prod \ Test.js "" C: \ Users \ livingston \ Download \ wa \ wa \ Files \ pre \ Test.js "" C: \ Users \ livingston \ Download \ wa \ wa \ Files \ output \ samp.js "/ t / m

inserisci qui la descrizione dell'immagine


Passaggio 3: unisci i file

inserisci qui la descrizione dell'immagine Si prega di notare che se il nome del file non esiste nella posizione, si non aprire l'operatore di confronto.

Inoltre puoi abbellire il file prima di fare il confronto. Nello studio visivo Ctrl + K + D.

Ci sono molti siti di bellezza disponibili online.


0

Il codice di Visual Studio è ottimo per questo: apri una cartella, fai clic con il pulsante destro del mouse su entrambi i file e confronta.


0

In Visual Studio il Diff può essere chiamato utilizzando Command Windowe quindi il Tools.DiffFilescomando

  1. Aperto Command Windowda tasti di scelta rapida Ctrl + W, Ao dal menuView -> Other Windows -> Command Window
  2. Immettere il comando Tools.DiffFiles "FirstFile.cs" "SecondFile.cs"


-4

Se stai lavorando con TFS connesso, fai clic con il pulsante destro del mouse sul file che devi confrontare (tramite Explorer Control Source) e ti presenta una finestra come questa: inserisci qui la descrizione dell'immagine

Ora cambia il percorso del file sorgente in 'Souce Path:' e ottieni il confronto attraverso lo strumento di confronto VS.

Allo stesso modo puoi anche confrontare una cartella che confronta tutti i file di una cartella contemporaneamente.


2
Se leggi il post originale, dice in particolare: "C'è un modo come posso solo confrontare due file con la funzione integrata in VS ma senza TFS?" La tua risposta richiede che abbia TFS.
CigarDoug

anche se ha tentato di rispondere .. anche se, il suo tentativo era sbagliato +1
Irf
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.