Porównaj dwa pliki w Visual Studio

Widziałem nowe narzędzie do porównywania W VS 2012 do porównywania dwóch plików lub dwóch wersji pliku. Podoba mi się. Ale kiedy próbowałem go znaleźć, nie mogę, ponieważ nie używam TFS.

Czy Jest jakiś sposób na porównanie dwóch plików z wbudowaną funkcją W VS (ale bez TFS)?

Author: Matt, 2012-12-06

19 answers

Możesz wywołać devenv.exe /diff list1.txt list2.txt z wiersza polecenia VS Developer lub, jeśli instancja Visual Studio jest już uruchomiona, możesz wpisać Tools.DiffFiles w oknie Polecenia, z poręcznym uzupełnieniem nazwy pliku:

Za Pomocą Narzędzi.DiffFiles from Visual Studio Command window

 851
Author: Vladimir Reshetnikov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-10-21 08:37:17

Zainspirowany powyższą odpowiedzią znalazłem bardzo wygodny sposób, w jaki można natychmiast porównać dwa pliki z Visual Studio za pomocą przeciągnij i upuść lub za pomocą "Wyślij do" menu kontekstowego. Wymaga tylko trochę przygotowania, które trzeba zrobić raz, a następnie jest przydatny jak szwajcarski nóż wojskowy.

Visual Studio ma już wszystko, czego potrzebujesz, są tylko niektóre kroki konfiguracji wymagane, aby to działało:

Porównanie plików korzystanie z funkcji przeciągnij i upuść

Przygotowanie:

  1. Utwórz nowy plik wsadowy za pomocą ulubionego edytora tekstu. Wpisz:
@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'

Możesz zauważyć, że odwróciłem %1 i %2 parametry w partii. To dlatego, że zauważyłem, że Eksplorator plików przekazuje 2. Plik jako pierwszy parametr, następnie 1.Plik jako drugi parametr.

  1. Zapisz ten kod jako VS_FileCompare.cmd aby go używać, zmodyfikuj vspath jeśli jest to wymagane, aby dopasować lokalizację devenv.exe (w zależności od aktualnie używanej wersji Visual Studio, Zobacz Przypisy*) )

  2. Utwórz skrót o nazwie "File Compare" dla VS_FileCompare.cmd i umieść go na pulpicie (Jak pokazano w animacji poniżej), aby zawsze był dostępny do przeciągania i upuszczania plików na nim lub bezpośrednio umieść plik wsadowy na pulpicie. To wszyscy!

Użycie:

  1. Otwórz Eksplorator Windows poprzez Win + E

  2. Wybierz dwa pliki do porównania w Eksploratorze

  3. Przeciągnij i upuść je, jak pokazano na animacji poniżej: DragDropDemo

  4. Po kilku sekundach (w zależności od czasu uruchomienia Visual Studio), wyniki zostaną wyświetlone w Visual Studio: Visual Studio View

Uwaga: nie szkodzi, jeśli Visual Studio jest już otwarte. W takim przypadku po prostu otworzy nowe okno w uruchomionej instancji Visual Studio. Możesz więc porównać wiele par plików, ale upewnij się, że wybrałeś tylko 2 pliki na raz.


Alternatywny sposób: Menu kontekstowe SendTo

Oto alternatywa, jak możesz użyć pliku wsadowego VS_FileCompare.cmd wymienione w sekcji powyżej. Pozwala na aby użyć menu kontekstowego Wyślij do folderu, aby porównać pliki.

Przygotowanie:

  1. Utwórz skrót "Compare2Files VS" dla pliku wsadowegoVS_FileCompare.cmd i skopiuj go do folderu SendTo. Otwórz Eksplorator Windows poprzez Win + E
  2. Otwórz folder SendTo wpisując shell:sendto do paska adresu Eksploratora plików (jak opisano tutaj ). Następnie umieść przygotowany skrót do tego folderu.

Użycie:

  1. Otwórz Eksplorator Windows poprzez Win + E

  2. Wybierz dwa pliki do porównania w Eksploratorze

  3. Zakładając skrót dla pliku wsadowego VS_FileCompare.cmd nazywa się "Compare2Files VS" , Możesz wybrać dwa pliki, kliknąć prawym przyciskiem myszy i wybrać Wyślij do --> Compare2Files VS aby wywołać porównanie, jak pokazano poniżej: SendTo

  4. Po kilku sekundach (w zależności od czasu uruchomienia Visual Studio), wyniki zostaną wyświetlone w Visual Studio: Visual Studio View

Podpowiedź: Jeśli podoba ci się podejście do folderu SendTo, możesz zrobić więcej - na przykład możesz otworzyć powłokę poleceń bezpośrednio przez SendTo i zaczyna się od właściwej ścieżki (ścieżki, na której znajduje się wybrany plik). Zobacz tutaj, aby dowiedzieć się, jak to zrobić. możesz nawet połączyć go ze skryptem, aby uzyskać podwyższone prawa , przy odrobinie dodatkowego wysiłku.


Wpisy w tematyce MSDN:


*)przypis: ponieważ vsPath (ścieżka do DEVENV.exe) różni się w zależności od wersji Visual Studio, opisuję jak można ją znaleźć (Windows 10):

  1. W menu WINDOWS start Ikona Windows Mała, znajdź ikonę Visual Studio Visual Studio Icon Small
  2. kliknij prawym przyciskiem myszy, aby wyświetlić menu kontekstowe. Wybierz Więcej > Otwórz Lokalizację Pliku.
    Eksplorator Windows otwiera się z podświetlonym skrótem Visual Studio.
  3. kliknij prawym przyciskiem myszy na Visual Studio i wybierz właściwości
  4. w oknie dialogowym Właściwości można znaleźć ścieżkę w "Target:" Vsprzypisy
 95
Author: Matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-10-22 09:09:12

Możesz wypróbować Rozszerzenie VSCommands z galerii Visual Studio. Najnowsza Wersja pozwala wybrać dwa pliki i porównać je:

Tutaj wpisz opis obrazkaTutaj wpisz opis obrazka

 79
Author: Jarek Kardas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-06 22:29:12

VS2019->View->Other Windows->Command Window (CTRL+ALT+A)

Tools.DiffFiles File1 File2
 35
Author: patrick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-29 14:14:00

Zawsze byłem fanem WinMerge, który jest projektem open source. Można go dość łatwo podłączyć do Visual Studio.

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

Pokaże Ci jak to zrobić

 25
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-06 21:38:43

Istnieje również rozszerzenie Visual Studio o nazwie CompareFiles , które dodaje jedynie pozycję "Porównaj pliki" do menu kontekstowego Eksploratora rozwiązań. Wywołuje wbudowane narzędzie Visual Studio diff.

Na wypadek, gdyby ktoś (jak ja) nie chciał zainstalować rozszerzenia all-in-one, takiego jak VSCommands...

 24
Author: Stephan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-11 01:18:56

W Visual Studio 2012, 2013, 2015 możesz to zrobić również za pomocą Web Essentials , po prostu kliknij prawym przyciskiem myszy pliki i z menu kontekstowego > Web Essential> > Diff wybrane pliki:

Edit: jest teraz dostępny jako oddzielne rozszerzenie

Tutaj wpisz opis obrazka

 18
Author: Hamid Mosalla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-01 01:26:47

Jeśli masz zainstalowany VS, możesz również wywołać

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

Or for VS 2013

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

Źródło: http://roadtoalm.com/2013/10/22/use-visual-studio-as-your-diff-and-merging-tool-for-local-files/

 16
Author: Chandramouleswaran Ravichandra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-30 16:59:58

Aktualizacja: Wtyczka VS 2019 File different pozwala porównywać pliki w różnych proyectach Tutaj wpisz opis obrazka

Tutaj wpisz opis obrazka

Możesz go zainstalować tutaj:

Tutaj wpisz opis obrazka

Stare: Dla instalacji VS 2017 https://marketplace.visualstudio.com/items?itemName=vs-publisher-457497.FileComparer2017

Problem polega na tym, że nie można porównywać plików w różnych proyectach, ale można skopiować pliki w tym samym projekcie do porównaj...

Plik Diference

 10
Author: Juan Pablo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-23 21:52:53

W Visual Studio Code możesz:

  • przejdź do Explorer
  • Kliknij prawym przyciskiem myszy pierwszy plik, który chcesz porównać
  • Wybierz Select for compare
  • Kliknij prawym przyciskiem myszy na drugim pliku, który chcesz porównać
  • Wybierz Compare with '[NAME OF THE PREVIOUSLY SELECTED FILE]'
 9
Author: jahller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-07 09:41:12
 9
Author: spottedmahn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-06 19:27:25

Ja też miałem ten problem. Brak TFS, ale uznałem ten artykuł za pomocny .

Konkretnie, krok 1b.

Otwórz wiersz polecenia programu Visual Studio i przejdź do folderu Common7 / IDE i wpisz

tf diff /configure
 2
Author: billb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-05 14:59:40

W Visual Studio Diff można wywołać za pomocą Command Window, a następnie Tools.DiffFiles polecenia

  1. Otwórz Command Window przez skróty klawiszowe Ctrl + W, A lub przez menu View -> Other Windows -> Command Window
  2. Enter command Tools.DiffFiles "FirstFile.cs" "SecondFile.cs"
 1
Author: Kiryl Khadanovich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-06 12:48:43

Porównywanie plików VS rozszerzenie by Akhil Mittal. Doskonałe lekkie narzędzie, które wykonuje zadanie.

 0
Author: usefulBee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-03 19:53:32

Aby porównać dowolne dwa pliki i połączyć je w jeden plik, wykonaj następujące kroki, które możesz wykonać, jeśli masz zainstalowany program visual studio (dowolna wersja).

Krok 1: Otwórz wiersz polecenia programu Visual studio. Jeśli nie znajdziesz wiersza polecenia programu visual studio, wybierz visual studio tools

Start - > wiersz poleceń Visual studio

Tutaj wpisz opis obrazka

Tutaj wpisz opis obrazka

Krok 2: wprowadź polecenie vsdiffmerge.exe

Ignoruj przełącznik / m, jeśli potrzebujesz tylko porównania.

Składnia 1:
vsdiffmerge /t / M

Składnia 2:
vsdiffmerge /t / M

Przykład 1:
Test vsdiffmerge1.js test2.test JS1.wyjście js.js /t / M
Przykład 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\Downloads\wa\wa\Files\output\samp.js " / t / M

Tutaj wpisz opis obrazka


Krok 3: Połącz pliki

Tutaj wpisz opis obrazka Należy pamiętać, że jeśli nazwa pliku nie istnieje w lokalizacji, to NIE otworzy komparator.

Możesz również upiększyć plik przed wykonaniem porównania. W visual studio Ctrl + K + D.

Istnieje wiele piękniejszych stron dostępnych w Internecie.

 0
Author: George Livingston,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-19 07:04:06

W zasadzie nie możesz.

Wersja 1.52.1 żadna z powyższych nie zadziałała.

 0
Author: Snowcrash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-02-08 13:28:46

Visual Studio code jest do tego świetny-otwórz folder, kliknij prawym przyciskiem myszy oba pliki i porównaj.

 -1
Author: niico,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-06 11:50:49

Uważam, że jest to jedno z lepszych rozszerzeń dla Visual Studio 2012, nazywa się Code Compare i można je znaleźć tutaj.

 -2
Author: Nathan Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-15 14:42:23

Jeśli pracujesz z TFS podłączony następnie kliknij prawym przyciskiem myszy na plik, który trzeba porównać (przez source control explorer) i prezentuje się okno jak to - Tutaj wpisz opis obrazka

Teraz zmień ścieżkę do pliku źródłowego w 'Souce Path:' i uzyskasz porównanie za pomocą narzędzia vs comparision.

Podobnie można porównać folder, który porównuje wszystkie pliki folderu na raz.

 -5
Author: Chetan Naithani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-03 12:43:03