Порівняйте два файли у Visual Studio


429

У VS 2012 я побачив новий інструмент порівняння для порівняння двох файлів або двох версій файлу. Мені це подобається. Але коли я спробував її знайти, я не можу, бо не використовую TFS. Чи є спосіб, як я можу просто порівняти два файли із вбудованою функцією у VS, але без TFS?


1
Як коментар для подальшого використання: Якщо ви працюєте з vs2015, скористайтеся цим посиланням: visualstudio.com/en-us/docs/tfvc/compare-files
Elnaz

Зауважте, це все ще застосовується для VS 2017. Отже, я дав відповідь, як комфортно вирішити цю проблему.
Метт

2
Жодна з відповідей не може порівняти два файли, вже відкриті у Visual Studio.
user3454439

1
Будь ласка, проголосуйте за цю функцію тут: developercommunity.visualstudio.com/content/idea/619706/…
Happypig375

У VS2017 та VS2019 відкрита навіть панель інструментів порівняння файлів, не знаю, як її використовувати ... За допомогою VSCode зараз просто відкрийте два файли та виберіть обидва та контекстне меню-> порівняйте вибране.
jw_

Відповіді:


808

Ви можете викликати devenv.exe /diff list1.txt list2.txtкомандний рядок або, якщо екземпляр Visual Studio вже запущений, ви можете набрати Tools.DiffFilesу вікні Command із зручним завершенням імені файлу:

Використання Tools.DiffFiles з вікна команд Visual Studio


15
Чи надає цей різний інструмент якусь корисну функцію, наприклад, копія вліво, копія вправо тощо? Коли я відрізняюсь робочою копією з версією сервера, я іноді хочу скасувати деякі зміни та доводиться робити вручну копіювання копії.
Самуїл

118
Чому ця функція прихована від інтерфейсу VS? Це найпростіший і ефективний спосіб порівняння двох файлів ...
eka808

76
Для тих, хто не знайомий із Visual Studio, вікно команд можна відкрити, перейшовши до: Перегляд> Інші Windows> Вікно команд (VS Pro 2013) або за допомогою CTRL + ALT + A
Cleanshooter

35
така ганьба VS не має пункту меню для цього дуже базового функціоналу. багато IDE / редактори.
роса

15
Примітка. У Visual Studio 2015 ви можете знайти його тут: Переглянути -> Панелі інструментів -> Порівняти файли . Просто введіть "порівняння" у вікно швидкого запуску, і ви отримаєте це додавання.
Метт

84

Надихнувшись прийнятою відповіддю вище, я знайшов дуже зручний спосіб, як можна миттєво порівняти два файли з Visual Studio за допомогою перетягування або через контекстне меню "Надіслати" . Це вимагає лише невеликої підготовки, яку вам потрібно зробити один раз, і тоді це корисно, як ніж у швейцарського армійського ножа.

У Visual Studio вже є все необхідне, для роботи цього потрібно лише кілька кроків налаштування:

Порівняння файлів за допомогою перетягування та перетягування

Підготовка:

1. Створіть новий пакетний файл за допомогою улюбленого текстового редактора. Введіть наступне:

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

Ви можете помітити, що я змінив параметри %1та %2параметри в партії. Це тому, що я помітив, що провідник файлів передає 2-й файл як перший параметр, потім 1-й файл як другий параметр.

2. Збережіть цей код VS_FileCompare.cmdдля його використання, змініть, vspathякщо потрібно, щоб він відповідав розташуванню devenv.exe(залежно від версії Visual Studio, яку ви зараз використовуєте, див. Виноску *) )

3. Створіть ярлик під назвою "Порівняння файлів" для VS_FileCompare.cmdта місця це на робочому столі(як використовується в анімації нижче), тому завжди можна перетягувати файли на неї або безпосередньо розміщувати пакетний файл на робочому столі. Це все!

Використання:

  1. Відкрийте Провідник Windows через Win+E
  2. Виберіть два файли для порівняння в провіднику
  3. Перетягніть їх, як показано в анімації нижче: DragDropDemo

  4. Через кілька секунд (залежно від часу запуску Visual Studio) результати будуть показані у Visual Studio: Візуальний вид студії

Примітка: не шкодить, якщо Visual Studio вже відкритий. У цьому випадку воно просто відкриє нове вікно в запущеному екземплярі Visual Studio. Таким чином, ви можете порівнювати кілька пар файлів, але переконайтеся, що ви вибрали лише 2 файли одночасно.


Альтернативний спосіб: контекстне меню SendTo

Ось альтернатива того, як можна використовувати пакетний файл, VS_FileCompare.cmdзгаданий у розділі вище. Це дозволяє використовувати папку "Відправити в" контекстного меню для порівняння файлів.

Підготовка:

  1. Створіть ярлик "Compare2Files VS" для пакетного файлу VS_FileCompare.cmdта скопіюйте його у папку SendTo . Відкрийте Провідник Windows через Win+E
  2. Відкрийте папку SendTo , ввівши shell:sendtoв адресний рядок провідника файлів (як описано тут ). Потім помістіть підготовлений ярлик у цю папку.

Використання:

  1. Відкрийте Провідник Windows через Win+E
  2. Виберіть два файли для порівняння в провіднику
  3. Якщо припустити, що ярлик для пакетного файлу VS_FileCompare.cmdмає назву "Порівняти2Files VS" , ви можете вибрати два файли, клацніть правою кнопкою миші та вибрати Надіслати до -> Порівняти2Files VS, щоб викликати порівняння, як показано нижче: Відправити

  4. Через кілька секунд (залежно від часу запуску Visual Studio) результати будуть показані у Visual Studio: Візуальний вид студії


Посилання MSDN:
- Використання розрізного вікна
- Параметр Diff Visual Studio


*)  Зноска: Оскільки vsPath(шлях до DEVENV.exe) відрізняється залежно від вашої версії Visual Studio, я описую, як ви можете це дізнатись (Windows 10):

  1. У меню запуску Windows Значок Windows Малий знайдіть піктограму Visual Studio Значок візуальної студії малий
  2. Клацніть правою кнопкою миші, щоб відкрити контекстне меню. Виберіть Більше> Відкрити розташування файлу .
    Провідник Windows відкривається за допомогою ярлика Visual Studio.
  3. Клацніть правою кнопкою миші на Visual Studio і виберіть Властивості
  4. У діалоговому вікні властивостей ви можете знайти шлях у розділі "Ціль:" VSProperties

5
Це дійсно дуже гарна і детальна відповідь, її обов'язково слід проголосувати. Я з групи, яка продовжує шукати відповідь нестандартно, навіть якщо відповідь позначена ниткою, тому я абсолютно даю їй голову вгору.
Div Tiwari

1
@DivTiwari - Дякую, радий це почути!
Метт

Редагувати: Це сценарій для VS 2013, ще раз дякую. @echo off setlocal set vspath = C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE запустити "Порівняти файли" / B / MIN "% vspath% \ devenv.exe" / diff% 2% 1 По-перше: '% 2' Другий: '% 1'
Фернандо Агілар

1
Це було чудово і працювало як шарм.
Великий спасибі

1
Приємно! голосування за це .. просто люблять "хакітський" характер цього рішення. Дякуємо вам за обмін.
Лев Гурдян

77

Ви можете спробувати розширення VSCommands з галереї Visual Studio . Останній випуск дозволяє вибрати два файли та порівняти їх:

введіть тут опис зображення введіть тут опис зображення


1
Я встановив розширення, але ця опція недоступна для мене.
PeterX

3
VSCommands 14 не додають жодного з елементів на скріншоті в VS 2015 Update 1 Community
Marek Toman

24

Я завжди був шанувальником WinMerge, який є проектом з відкритим кодом. Ви можете підключити його до Visual Studio досить легко.

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

покаже, як це зробити


Також вміє відрізняти папки - дуже потужні
Jaans

2
Єдиним недоліком WinMerge є його обмежений аблітій для розпізнавання змін (таких як пробіл, рядки, розділені на більше рядків тощо)

24

Існує також розширення Visual Studio під назвою CompareFiles , яке не робить нічого іншого, крім додавання запису "Порівняти файли" до контекстного меню провідника рішень. Він викликає вбудований інструмент розробки Visual Studio.

Про всяк випадок, якщо хтось (як я) не хоче встановлювати розширення все в одному, як VSCommands ...


1
Примітка - це розширення призначене лише для VS2012, але ви можете досить легко відредагувати файл маніфесту для підтримки VS2013 - детальну інформацію див. У коментарях на вкладці "Питання та відповіді". (Я хотів цю функцію, але не можу використовувати безкоштовну версію VSCommands на роботі через свою ліцензію)
James S

Інструменти для порівняння Visual Studio доступні для 2013 року, visualstudiogallery.msdn.microsoft.com/…
Вирівняно

23

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

Tools.DiffFiles File1 File2

Це те саме, що й інша відповідь
niico

5
Можливо - хоча особисто я скоріше скористаюся графічним графічним інтерфейсом для вибору файлів, ніж тип, щоб у будь-якому випадку побудувати два шляхи - я маю на увазі це не 1984.
niico

18

У Visual Studio 2012, 2013, 2015 ви також можете це робити за допомогою веб-програм Essentials , просто клацніть правою кнопкою миші файли та з контекстного меню> Web Essential >> Різнити вибрані файли:

Редагувати: тепер вона доступна як окреме розширення

введіть тут опис зображення


Я не бачу відмінних виділених файлів чи компіляції відмітки у HTML у веб-програмі Web Essential - VS 2015
корисноБез

Я встановив нову версію для, VS 2015але я не в змозі побачити Diff selected filesваріант, чому?
shaijut

@stom встановити згадане розширення.
Хамід Мосалла

16

Якщо у вас встановлений VS, ви також можете зателефонувати

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

або для VS 2013

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

Джерело: http://roadtoalm.com/2013/10/22/use-visual-studio-as-your-diff-and-merging-tool-for-local-files/


Спасибі прекрасно працювали для мене. c: \ temp> "% VS120COMNTOOLS% .. \ IDE \ vsdiffmerge.exe" 1256.txt 1256_PROD_Original.txt
Крейг B,

8

У коді Visual Studio ви можете:

  • Перейти до Explorer
  • Клацніть правою кнопкою миші перший файл, який ви хочете порівняти
  • Виберіть Select for compare
  • Клацніть правою кнопкою миші другий файл, який ви хочете порівняти
  • Виберіть Compare with '[NAME OF THE PREVIOUSLY SELECTED FILE]'

Це чудово працює в коді Visual Studio, як ви згадували, але, на жаль, немає в Visual Studio Enterprise (ні в Professional).
Ептін


4

ОНОВЛЕНО: Для модуля VS 2019 Differ File Plugin Дозволяє порівнювати файли в різних проектах введіть тут опис зображення

введіть тут опис зображення

Ви можете встановити його звідси:

введіть тут опис зображення

СТАРИЙ: Для VS 2017 встановіть https://marketplace.visualstudio.com/items?itemName=vs-publisher-457497.FileComparer2017

Проблема полягає в тому, що ви не можете порівнювати файли в різних проектах, але ви можете скопіювати файли в одному проекті для порівняння ...

Файлова різниця


1
На жаль, це не спрацьовує при спробі порівняння двох файлів без рішення (наприклад, коли ви відкриваєте VS2017 у режимі папок: Відкрити - Папка)
Юрій Козлов

2

У мене була і ця проблема. Немає TFS, але я вважаю цю статтю корисною .

Зокрема, крок 1b.

Відкрийте командний рядок Visual Studio та перейдіть до папки Common7 / IDE та введіть

tf diff /configure

0

Розширення файлу порівняння VS від Akhil Mittal. Відмінний легкий інструмент, який виконує роботу.


0

Щоб порівняти будь-які два файли та об’єднати його в один файл Ось наступні кроки, які ви можете виконати, якщо у вас встановлена ​​візуальна студія (Будь-яка версія).

Крок 1: Відкрийте командний рядок Visual studio. Якщо ви не знайдете командного рядка візуальної студії, тоді виберіть інструменти візуальної студії

Пуск -> Командний рядок візуальної студії

введіть тут опис зображення

введіть тут опис зображення

Крок 2: Введіть команду vsdiffmerge.exe

Ігноруйте перемикач / м, якщо вам потрібно лише порівняння.

Синтаксис 1:
vsdiffmerge <file1> <file2> <file1> <outputfile> / t / m

Синтаксис 2:
vsdiffmerge <ім'я бази даних> <Ім’я файлу порівняння> <ім'я бази даних> <Ім'я файлу виводу> / т / м

Приклад 1:
vsdiffmerge test1.js test2.js test1.js output.js / t / m
Приклад 2:
vsdiffmerge.exe "C: \ Users \ livingston \ Downloads \ wa \ wa \ Файли \ pre \ Test.js" "C : \ Користувачі \ livingston \ Завантаження \ wa \ wa \ Файли \ Прод \ Тест.js "" C: \ Користувачі \ Livingston \ Завантаження \ wa \ wa \ Файли \ pre \ Test.js "" C: \ Користувачі \ livingston \ Завантаження \ wa \ wa \ Файли \ вихід \ samp.js "/ t / m

введіть тут опис зображення


Крок 3: Об’єднайте файли

введіть тут опис зображення Зверніть увагу, що якщо ім'я файлу не існує в цьому місці, воно не відкриє компаратор.

Також ви можете прикрасити файл, перш ніж робити порівняння. У візуальній студії Ctrl + K + D

В Інтернеті доступно багато сайтів для красунь.


0

Код Visual Studio відмінно підходить для цього - відкрийте папку, клацніть правою кнопкою миші обидва файли та порівняйте.


0

У Visual Studio Diff можна викликати за допомогою, Command Windowа потім Tools.DiffFilesкомандою

  1. Відкрити Command Windowгарячими клавішами Ctrl + W, Aабо менюView -> Other Windows -> Command Window
  2. Введіть команду Tools.DiffFiles "FirstFile.cs" "SecondFile.cs"


-4

Якщо ви працюєте з TFS, підключеним, тоді клацніть правою кнопкою миші на файл, який вам потрібно порівняти (через провідник управління джерелом), і він відкриє вам таке вікно - введіть тут опис зображення

Тепер змініть шлях до вихідного файлу в «Шлях соуса:», і ви отримаєте порівняння через інструмент порівняння VS.

Так само ви можете порівняти папку, яка порівнює всі файли папки одночасно.


2
Якщо ви читаєте оригінальний пост, він спеціально каже: "Чи є спосіб, як я можу просто порівняти два файли із вбудованою функцією в VS, але без TFS?" Ваша відповідь вимагає, щоб він мав TFS.
CigarDoug

хоча він намагався відповісти .. хоча його спроба була помилковою +1
Ірф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.