Vergleichen Sie zwei Dateien in Visual Studio

426

Ich habe in VS 2012 ein neues Vergleichstool zum Vergleichen von zwei Dateien oder zwei Dateiversionen gesehen. Ich mag das. Aber als ich versucht habe, es zu finden, kann ich es nicht, weil ich kein TFS verwende. Gibt es eine Möglichkeit, wie ich zwei Dateien mit der in VS integrierten Funktion vergleichen kann, jedoch ohne TFS?

Libor Zapletal
quelle
1
Nur als Kommentar zur weiteren Verwendung: Wenn Sie mit vs2015 arbeiten, verwenden Sie diesen Link: visualstudio.com/en-us/docs/tfvc/compare-files
Elnaz
Beachten Sie, dass dies weiterhin für VS 2017 gilt. Daher habe ich eine Antwort gegeben, wie Sie mit diesem Problem bequem umgehen können.
Matt
2
Keine der Antworten kann zwei bereits in Visual Studio geöffnete Dateien vergleichen .
user3454439
1
Bitte stimmen Sie hier für diese Funktion ab: Developercommunity.visualstudio.com/content/idea/619706/…
Happypig375
In VS2017 und VS2019 ist sogar die Symbolleiste zum Vergleichen von Dateien geöffnet. Sie wissen nicht, wie Sie sie verwenden sollen. Öffnen Sie jetzt mit VSCode einfach die beiden Dateien und wählen Sie beide und das Kontextmenü-> Vergleich ausgewählt aus.
jw_

Antworten:

808

Sie können devenv.exe /diff list1.txt list2.txtüber die Eingabeaufforderung aufrufen oder, wenn bereits eine Visual Studio-Instanz ausgeführt wird, Tools.DiffFilesdas Befehlsfenster mit einem praktischen Dateinamen eingeben:

Verwenden von Tools.DiffFiles aus dem Visual Studio-Befehlsfenster

Vladimir Reshetnikov
quelle
15
Bietet dieses Diff-Tool nützliche Funktionen wie Kopieren nach links, Kopieren nach rechts usw.? Wenn ich die Arbeitskopie mit der Serverversion verteile, möchte ich manchmal einige der Änderungen rückgängig machen und muss manuell kopieren.
Samuel
118
Warum ist diese Funktion in der VS-Benutzeroberfläche verborgen? Dies ist der einfachste und effektivste Weg, um zwei Dateien zu vergleichen ...
eka808
76
Für diejenigen unter Ihnen, die Visual Studio noch nicht kennen, kann das Befehlsfenster geöffnet werden, indem Sie zu: Ansicht> Andere Fenster> Befehlsfenster (VS Pro 2013) oder mit STRG + ALT + A
Cleanshooter
35
so eine Schande VS hat keinen Menüpunkt für diese sehr grundlegende Funktionalität. Viele IDEs / Editoren tun dies.
Tau
14
Hinweis: In Visual Studio 2015 finden Sie es hier: Ansicht -> Symbolleisten -> Dateien vergleichen . Geben Sie einfach "Vergleichen" in das Schnellstartfenster ein und Sie erhalten es hinzugefügt.
Matt
84

Inspiriert von der oben akzeptierten Antwort fand ich eine sehr komfortable Möglichkeit, zwei Dateien sofort per Drag & Drop oder über das Kontextmenü "Senden an" mit Visual Studio zu vergleichen . Es erfordert nur eine kleine Vorbereitung, die Sie einmal durchführen müssen, und dann ist es nützlich wie ein Schweizer Taschenmesser.

Visual Studio verfügt bereits über alles, was Sie benötigen. Es sind nur einige Konfigurationsschritte erforderlich, damit dies funktioniert:

Dateivergleich per Drag & Drop

Vorbereitung:

1. Erstellen Sie eine neue Batchdatei mit Ihrem bevorzugten Texteditor. Geben Sie Folgendes ein:

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

Möglicherweise stellen Sie fest, dass ich die Parameter %1und %2im Stapel umgekehrt habe . Dies liegt daran, dass ich festgestellt habe, dass der Datei-Explorer die 2. Datei übergibt als ersten Parameter und dann die 1. Datei als zweiten Parameter .

2. Speichern Sie diesen Code VS_FileCompare.cmd, um ihn zu verwenden, und ändern Sie ihn vspathbei Bedarf, um ihn an den Speicherort von devenv.exeanzupassen (abhängig von der aktuell verwendeten Visual Studio-Version , siehe Fußnote * ).

3. Erstellen Sie entweder eine Verknüpfung mit dem Namen "Dateivergleich" für VS_FileCompare.cmdund platzieren Sie sie es auf dem Desktop(wie in der folgenden Animation verwendet), sodass Sie jederzeit Dateien per Drag & Drop darauf ablegen oder die Batchdatei direkt auf dem Desktop ablegen können. Das ist alles!

Verwendungszweck:

  1. Öffnen Sie den Windows Explorer über Win+E
  2. Wählen Sie im Explorer zwei zu vergleichende Dateien aus
  3. Ziehen Sie sie wie in der folgenden Animation gezeigt per Drag & Drop: DragDropDemo

  4. Nach einigen Sekunden (abhängig von der Startzeit von Visual Studio) werden die Ergebnisse in Visual Studio angezeigt: Visual Studio-Ansicht

Hinweis: Es schadet nicht, wenn Visual Studio bereits geöffnet ist. In diesem Fall wird nur ein neues Fenster in der laufenden Instanz von Visual Studio geöffnet. Sie können also mehrere Dateipaare vergleichen, stellen Sie jedoch sicher, dass Sie nur zwei Dateien gleichzeitig ausgewählt haben.


Alternative Möglichkeit: SendTo-Kontextmenü

Hier ist eine Alternative, wie Sie die VS_FileCompare.cmdim obigen Abschnitt erwähnte Batch-Datei verwenden können . Sie können den Ordner Senden an des Kontextmenüs verwenden, um die Dateien zu vergleichen.

Vorbereitung:

  1. Erstellen Sie eine Verknüpfung "Compare2Files VS" für die Batch - Datei VS_FileCompare.cmdund kopieren Sie sie in den SendTo - Ordner. Öffnen Sie den Windows Explorer über Win+E
  2. Öffne das SendTo- Ordner, indem Sie shell:sendtoin die Adressleiste des Datei-Explorers eingeben (wie hier beschrieben ). Legen Sie dann die vorbereitete Verknüpfung in diesen Ordner.

Verwendungszweck:

  1. Öffnen Sie den Windows Explorer über Win+E
  2. Wählen Sie im Explorer zwei zu vergleichende Dateien aus
  3. Angenommen, die Verknüpfung für die Batchdatei VS_FileCompare.cmdheißt "Compare2Files VS". . Sie können die beiden Dateien auswählen, mit der rechten Maustaste klicken und Senden an -> Compare2Files VS auswählen , um den Vergleich wie unten gezeigt aufzurufen: Senden an

  4. Nach einigen Sekunden (abhängig von der Startzeit von Visual Studio) werden die Ergebnisse in Visual Studio angezeigt: Visual Studio-Ansicht


MSDN-Referenzen:
- Verwendung des Diff-Fensters
- Diff-Parameter von Visual Studio


*)  Fußnote: Da vsPath(der Pfad zu DEVENV.exe) je nach Ihrer Version von Visual Studio unterschiedlich ist, beschreibe ich, wie Sie es herausfinden können (Windows 10):

  1. Im Windows-Startmenü Windows-Symbol Klein das Visual Studio-Symbol Visual Studio-Symbol Klein
  2. Klicken Sie mit der rechten Maustaste, um das Kontextmenü aufzurufen. Wählen Mehr> Dateispeicherort öffnen .
    Der Windows Explorer wird mit der hervorgehobenen Visual Studio-Verknüpfung geöffnet.
  3. Klicken Sie mit der rechten Maustaste auf Visual Studio und wählen Sie Eigenschaften
  4. Im Eigenschaftendialog finden Sie den Pfad unter "Ziel:" VSProperties
Matt
quelle
5
Dies ist wirklich eine sehr gute und ausgearbeitete Antwort, sollte auf jeden Fall abgestimmt werden. Ich gehöre zu der Gruppe, die immer nach einer sofort einsatzbereiten Antwort sucht, auch wenn die Antwort in einem Thread markiert ist, also gebe ich sie absolut auf.
Div Tiwari
1
@ DivTiwari - Danke, freut mich das zu hören!
Matt
Bearbeiten: Dies ist das Skript für VS 2013, nochmals vielen Dank. @echo off setlocal set vspath = C: \ Programme (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE Start "Dateien vergleichen" / B / MIN "% vspath% \ devenv.exe" / diff% 2% 1 Zuerst: '% 2' Zweitens: '% 1'
Fernando Aguilar
1
Das war großartig und hat wie ein Zauber gewirkt. Vielen Dank Kumpel
Sabbir Hassan
1
Nett! Dies zu stimmen ... liebe einfach die "hackische" Natur dieser Lösung. Vielen Dank für das Teilen.
Leo Gurdian
24

Ich war schon immer ein Fan von WinMerge, einem Open Source-Projekt. Sie können es ziemlich einfach in Visual Studio einbinden.

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

zeigt Ihnen, wie das geht


quelle
Auch in der Lage, Ordner zu unterscheiden - sehr mächtig
Jaans
2
Der einzige Nachteil von WinMerge ist seine begrenzte Fähigkeit, Änderungen zu erkennen (wie Leerzeichen, in mehrere Zeilen unterteilte Zeilen usw.)
24

Es gibt auch eine Visual Studio-Erweiterung namens CompareFiles , die nichts anderes tut , als den Eintrag "Compare Files" zum Kontextmenü des Solution Explorers hinzuzufügen. Es ruft das integrierte Visual Studio Diff-Tool auf.

Nur für den Fall, dass jemand (wie ich) keine All-in-One-Erweiterung wie VSCommands installieren möchte ...

Stephan
quelle
1
Hinweis: Diese Erweiterung ist nur für VS2012 vorgesehen. Sie können die Manifestdatei jedoch so bearbeiten, dass VS2013 problemlos unterstützt wird. Weitere Informationen finden Sie in meinem Kommentar auf der Registerkarte "Fragen und Antworten" der Erweiterung. (Ich wollte diese Funktion, kann aber die kostenlose Version von VSCommands bei der Arbeit aufgrund der Lizenz nicht verwenden.)
James S
Visual Studio Vergleichstools ist für 2013 verfügbar, visualstudiogallery.msdn.microsoft.com/…
Ausgerichtet
23

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

Tools.DiffFiles File1 File2
Patrick
quelle
Dies ist das gleiche wie eine andere Antwort
Niico
4
Vielleicht - obwohl ich persönlich lieber eine GUI verwenden würde, um die Dateien auszuwählen, als dass der Typ auf jeden Fall zwei Pfade erstellen muss - meine ich, es ist nicht 1984.
Niico
18

In Visual Studio 2012, 2013, 2015 können Sie dies auch mit Web Essentials tun. Klicken Sie einfach mit der rechten Maustaste auf die Dateien und wählen Sie im Kontextmenü> Web Essential >> Diff ausgewählte Dateien:

Bearbeiten: Es ist jetzt als separate Erweiterung verfügbar

Geben Sie hier die Bildbeschreibung ein

Hamid Mosalla
quelle
Ich sehe keine von Diff ausgewählten Dateien oder kompiliere Markdown zu HTML in Web Essential - VS 2015
nützlichBee
Ich habe eine neue Version für installiert, kann VS 2015aber keine Diff selected filesOption sehen, warum?
Shaijut
@stom installiere die erwähnte Erweiterung.
Hamid Mosalla
16

Wenn Sie VS installiert haben, können Sie auch anrufen

"%VS110COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2"

oder für VS 2013

"%VS120COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2"

Quelle: http://roadtoalm.com/2013/10/22/use-visual-studio-as-your-diff-and-merging-tool-for-local-files/

Chandramouleswaran Ravichandra
quelle
Danke hat perfekt für mich funktioniert. c: \ temp> "% VS120COMNTOOLS% .. \ IDE \ vsdiffmerge.exe" 1256.txt 1256_PROD_Original.txt
Craig B
8

In Visual Studio Code können Sie:

  • Gehe zum Explorer
  • Klicken Sie mit der rechten Maustaste auf die erste Datei, die Sie vergleichen möchten
  • Wählen Select for compare
  • Klicken Sie mit der rechten Maustaste auf die zweite Datei, die Sie vergleichen möchten
  • Wählen Compare with '[NAME OF THE PREVIOUSLY SELECTED FILE]'
Jahller
quelle
Dies funktioniert wunderbar in Visual Studio Code, wie Sie bereits erwähnt haben, aber leider nicht in Visual Studio Enterprise (oder Professional).
Eptin
4

AKTUALISIERT: Für VS 2019 File Differ Plugin Ermöglicht den Vergleich von Dateien in verschiedenen Projekten Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Sie können es von hier aus installieren:

Geben Sie hier die Bildbeschreibung ein

ALT: Für VS 2017 Installieren Sie https://marketplace.visualstudio.com/items?itemName=vs-publisher-457497.FileComparer2017

Das Problem ist, dass Sie keine Dateien in verschiedenen Projekten vergleichen können, aber Sie können die Dateien im selben Projekt kopieren, um sie zu vergleichen ...

Dateidifferenz

Juan Pablo
quelle
1
Leider funktioniert dies nicht, wenn Sie versuchen, zwei Dateien ohne Lösung zu vergleichen (z. B. wenn Sie VS2017 im Ordnermodus öffnen: Öffnen - Ordner)
Yury Kozlov
2

Ich hatte auch dieses Problem. Kein TFS, aber ich fand diesen Artikel hilfreich .

Insbesondere Schritt 1b.

Öffnen Sie eine Visual Studio-Eingabeaufforderung, navigieren Sie zum Ordner Common7 / IDE und geben Sie ein

tf diff /configure
billb
quelle
0

File Comparer VS Extension von Akhil Mittal. Hervorragendes leichtes Werkzeug, das die Arbeit erledigt.

nützlichBee
quelle
0

So vergleichen Sie zwei beliebige Dateien und führen sie zu einer Datei zusammen Hier sind die folgenden Schritte, die Sie ausführen können, wenn Sie Visual Studio (eine beliebige Version) installiert haben.

Schritt 1: Öffnen Sie die Visual Studio-Eingabeaufforderung. Wenn Sie keine Visual Studio-Eingabeaufforderung finden, wählen Sie Visual Studio-Tools

Start -> Visual Studio-Eingabeaufforderung

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Schritt 2: Geben Sie den Befehl vsdiffmerge.exe ein

Ignorieren Sie den Schalter / m, wenn Sie nur einen Vergleich benötigen.

Syntax 1:
vsdiffmerge <Datei1> <Datei2> <Datei1> <Ausgabedatei> / t / m

Syntax 2:
vsdiffmerge <Basisdateiname> <Vergleichsdateiname> <Basisdateiname> <Ausgabedateiname> / t / m

Beispiel 1:
vsdiffmerge test1.js test2.js test1.js output.js / t / m
Beispiel 2:
vsdiffmerge.exe "C: \ Benutzer \ livingston \ Downloads \ wa \ wa \ Dateien \ pre \ Test.js" "C. : \ Benutzer \ livingston \ Downloads \ wa \ wa \ Dateien \ Prod \ Test.js "" C: \ Benutzer \ livingston \ Downloads \ wa \ wa \ Dateien \ pre \ Test.js "" C: \ Benutzer \ livingston \ Downloads \ wa \ wa \ Files \ output \ samp.js "/ t / m

Geben Sie hier die Bildbeschreibung ein


Schritt 3: Führen Sie die Dateien zusammen

Geben Sie hier die Bildbeschreibung ein Bitte beachten Sie, dass der Vergleicher nicht geöffnet wird, wenn der Dateiname am Speicherort nicht vorhanden ist.

Sie können die Datei auch verschönern, bevor Sie den Vergleich durchführen. Im visuellen Studio Strg + K + D.

Es gibt viele Verschönerungsseiten online.

George Livingston
quelle
0

Visual Studio-Code eignet sich hervorragend dafür - öffnen Sie einen Ordner, klicken Sie mit der rechten Maustaste auf beide Dateien und vergleichen Sie sie.

Niico
quelle
0

In Visual Studio kann der Diff mit aufgerufen werden Command Windowund dann Tools.DiffFilesBefehl

  1. Öffnen Command Windowüber Hotkeys Ctrl + W, Aoder über das MenüView -> Other Windows -> Command Window
  2. Befehl eingeben Tools.DiffFiles "FirstFile.cs" "SecondFile.cs"
Kiryl Khadanovich
quelle
-2

Ich glaube, dies ist eine der besseren Erweiterungen für Visual Studio 2012, sie heißt Code Compare und ist hier zu finden .

Opster Elasticsearch - Nathan
quelle
-4

Wenn Sie mit verbundenem TFS arbeiten, klicken Sie mit der rechten Maustaste auf die Datei, die Sie vergleichen müssen (über den Versionsverwaltungs-Explorer), und es wird ein Fenster wie das folgende angezeigt: Geben Sie hier die Bildbeschreibung ein

Ändern Sie nun den Pfad der Quelldatei in 'Souce Path:' und Sie erhalten einen Vergleich über das VS-Vergleichstool.

In ähnlicher Weise können Sie auch Ordner vergleichen, die alle Dateien eines Ordners gleichzeitig vergleichen.

Chetan Naithani
quelle
2
Wenn Sie den Originalbeitrag lesen, sagt er ausdrücklich: "Gibt es eine Möglichkeit, wie ich zwei Dateien mit der in VS integrierten Funktion vergleichen kann, jedoch ohne TFS?" Ihre Antwort erfordert, dass er TFS hat.
CigarDoug
obwohl er versuchte zu antworten .. obwohl sein Versuch falsch war +1
Irf