Visual Studio'da iki dosyayı karşılaştırma


429

VS 2012'de iki dosyayı veya dosyanın iki sürümünü karşılaştırmak için yeni karşılaştırma aracı gördüm. Bunu sevdim. Ama onu bulmaya çalıştığımda TFS kullanmadığım için yapamıyorum. VS'de yerleşik özellikli ancak TFS olmadan iki dosyayı nasıl karşılaştırabilirim?


1
Daha fazla kullanım için yorum olarak: vs2015 ile çalışıyorsanız, bu bağlantıyı kullanın: visualstudio.com/en-us/docs/tfvc/compare-files
Elnaz

Bunun VS 2017 için hala geçerli olduğunu unutmayın . Bu nedenle, bu sorunla nasıl başa çıkılacağına dair bir cevap verdim .
Matt

2
Yanıtların hiçbiri, Visual Studio'da zaten açılmış olan iki dosyayı karşılaştıramaz .
user3454439

1
Lütfen bu özellik için buraya oy verin: developercommunity.visualstudio.com/content/idea/619706/…
Happypig375

VS2017 ve VS2019'da, karşılaştırma dosyası araç çubuğu bile açık, nasıl kullanılacağını bilmiyorum ... VSCode'u şimdi kullanarak, sadece iki dosyayı açın ve her ikisini de seçin ve bağlam menüsü-> karşılaştırmayı seçin.
jw_

Yanıtlar:


808

devenv.exe /diff list1.txt list2.txtKomut isteminden çağırabilirsiniz veya bir Visual Studio örneği zaten çalışıyorsa, Tools.DiffFileskullanışlı bir dosya adı tamamlamasıyla Komut penceresine yazabilirsiniz :

Visual Studio Komut penceresinden Tools.DiffFiles kullanma


15
Bu fark aracı, sola kopyala, sağa kopyala vb. Gibi kullanışlı bir özellik sunuyor mu? Sunucu sürümü ile çalışma kopyasını farklılaştırdığımda bazen bazı değişiklikleri geri almak istiyorum ve manuel kopya yapıştırma yapmak zorundayım.
Samuel

118
Bu özellik neden VS kullanıcı arayüzünden gizleniyor? Bu iki dosyayı karşılaştırmanın en kolay ve etkili yoludur ...
eka808

76
Komut Penceresi giderek açılabilir Visual Studio için yeni olanlarınız için: Görünüm> Diğer Windows'un> Komut Penceresi (Pro 2013 VS) veya CTRL + ALT + A
Cleanshooter

35
böyle bir utanç VS bu çok temel işlevsellik için bir menü öğesi yok. birçok IDE / editör bunu yapıyor.
dewd

15
Not: Visual Studio 2015'te burada bulabilirsiniz: Görünüm -> Araç Çubukları -> Dosyaları Karşılaştır . Hızlı başlatma penceresine "karşılaştır" yazmanız yeterlidir.
Matt

84

Yukarıdaki kabul edilen yanıttan esinlenerek, sürükle bırak veya "Gönder" bağlam menüsü aracılığıyla iki dosyayı Visual Studio ile anında karşılaştırabileceğiniz çok rahat bir yol buldum . Sadece bir kez yapmanız gereken küçük bir hazırlık gerektirir ve daha sonra bir İsviçre çakısı gibi yararlıdır.

Visual Studio zaten ihtiyacınız olan her şeye sahiptir, bunun çalışması için gereken bazı yapılandırma adımları vardır:

Sürükle ve bırak yöntemiyle dosya karşılaştırma

Hazırlık:

1. En sevdiğiniz metin düzenleyicisini kullanarak yeni bir toplu iş dosyası oluşturun. Aşağıdakileri yazın:

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

Toplu işteki %1ve %2parametrelerini ters çevirdiğimi fark edebilirsiniz . Bunun nedeni, dosya gezgininin ikinci dosyayı ilk parametre olarak, sonra da 1. dosyayı ikinci parametre olarak geçirdiğini fark etmemdi .

2. kaydet bu kod VS_FileCompare.cmddeğiştirme kullanmak vspathkonumunu maç için gerekirse devenv.exe(bağlı Visual Studio sürümü bakın şu anda kullandığınız dipnot *) )

3. Ya oluşturmak kısayol adında "Dosya Karşılaştırma" için VS_FileCompare.cmdve yeri üzerinde o masaüstüne(aşağıdaki animasyonda kullanıldığı gibi), bu nedenle dosyaları üzerine sürükleyip bırakmak veya toplu iş dosyasını doğrudan masaüstüne yerleştirmek her zaman kullanılabilir. Bu kadar!

Kullanımı:

  1. , Windows gezginini yoluyla Win+E
  2. Gezginde karşılaştırılacak iki dosya seçin
  3. Aşağıdaki animasyonda gösterildiği gibi sürükleyip bırakın: DragDropDemo

  4. Birkaç saniye sonra (Visual Studio'nun başlatma süresine bağlı olarak), sonuçlar Visual Studio'da gösterilir: Visual Studio Görüntüle

Not: Visual Studio zaten açıksa zarar vermez. Bu durumda, çalışan Visual Studio örneğinde yeni bir pencere açılacaktır. Bu nedenle, birden çok dosya çiftini karşılaştırabilirsiniz, ancak lütfen aynı anda yalnızca 2 dosya seçtiğinizden emin olun.


Alternatif yol: SendTo içerik menüsü

VS_FileCompare.cmdYukarıdaki bölümde belirtilen toplu iş dosyasını nasıl kullanabileceğiniz aşağıda açıklanmıştır. Dosyaları karşılaştırmak için içerik menüsünün Gönder klasörünün kullanılmasına izin verir.

Hazırlık:

  1. Toplu iş dosyası için bir "Compare2Files VS" kısayolu oluşturun VS_FileCompare.cmdve SendTo klasörüne kopyalayın. Aç , Windows gezginini yoluyla Win+E
  2. Dosya gezgininin adres çubuğuna ( burada açıklandığı gibi ) girerek SendTo klasörünü açın . Ardından, hazırlanan kısayolu bu klasöre koyun.shell:sendto

Kullanımı:

  1. , Windows gezginini yoluyla Win+E
  2. Gezginde karşılaştırılacak iki dosya seçin
  3. Toplu iş dosyasının kısayolunun "Compare2Files VS"VS_FileCompare.cmd olarak adlandırıldığı varsayılarak, iki dosyayı seçebilir, sağ tıklayabilir ve aşağıda gösterildiği gibi karşılaştırmayı başlatmak için Gönder -> Karşılaştır2Files VS'yi seçebilirsiniz : Gönderildi

  4. Birkaç saniye sonra (Visual Studio'nun başlatma süresine bağlı olarak), sonuçlar Visual Studio'da gösterilir: Visual Studio Görüntüle


MSDN Referansları:
- Fark penceresinin kullanımı
- Visual Studio'nun Diff parametresi


*)  Dipnot: Çünkü vsPathhiç (yol DEVENV.exe) farklıdır Visual Studio sürümüne bağlı olarak, I) (Windows 10 bunu öğrenmek için aşağıdaki adımlar açıklayan am:

  1. In Windows başlat menüsünden Windows Simgesi Küçük bulun Visual Studio simgesini Visual Studio Simgesi Küçük
  2. Bağlam menüsünü getirmek için sağ tıklayın. Diğer> Dosya Konumunu Aç'ı seçin .
    Windows Gezgini, Visual Studio kısayolu vurgulanmış olarak açılır.
  3. Visual Studio'ya sağ tıklayın ve Özellikler'i seçin
  4. Özellikler iletişim kutusunda, yolu "Hedef:" bölümünde bulabilirsiniz. VSProperties

5
Bu gerçekten çok iyi ve özenli bir cevap, kesinlikle oylanmalıdır. Ben cevap bir iş parçacığı içinde işaretlenmiş olsa bile ben kesinlikle kafasını vererek ben kutunun dışında arıyor cevap grubundan değilim.
Div Tiwari

1
@DivTiwari - Teşekkür ederim, bunu duyduğuma sevindim!
Matt

Düzenleme: Bu VS 2013 için komut dosyası, tekrar teşekkürler. @echo off setlocal set vspath = C: \ Program Dosyaları (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE başlat "Dosyaları karşılaştır" / B / MIN "% vspath% \ devenv.exe" / diff% 2% 1 İlk: '% 2' İkinci: '% 1'
Fernando Aguilar

1
Bu mükemmel ve bir cazibe gibi çalıştı. Çok teşekkürler dostum
Sabbir Hassan

1
Güzel! Bu oylama ... sadece bu çözümün 'hackish' doğasını seviyorum. Paylaştığınız için teşekkür ederiz.
Leo



24

Çözüm Gezgini bağlam menüsüne "Dosyaları Karşılaştırın" girişini eklemekten başka hiçbir şey yapmayan CompareFiles adında bir Visual Studio uzantısı da vardır . Yerleşik Visual Studio fark aracını çağırır.

Birisinin (benim gibi) VSCommands gibi hepsi bir arada bir uzantı yüklemek istememesi durumunda ...


1
NB - bu uzantı yalnızca VS2012 içindir, ancak manifest dosyasını VS2013'ü yeterince kolay destekleyecek şekilde düzenleyebilirsiniz - ayrıntılar için uzantının S ve C sekmesindeki yorumuma bakın. (Bu özelliği istedim, ancak lisans nedeniyle işyerinde VSCommands'un ücretsiz sürümünü kullanamıyorum)
James S

Visual Studio Karşılaştırma Araçları 2013 için kullanılabilir, visualstudiogallery.msdn.microsoft.com/…
Aligned

23

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

Tools.DiffFiles File1 File2

Bu başka bir cevapla aynı
niico

5
Belki - gerçi ben şahsen yerine her durumda iki yol inşa etmek zorunda türü daha dosyaları seçmek için bir GUI kullanmak istiyorum - Öyle demek 1984. değil
niico

18

Visual Studio 2012, 2013, 2015'te bunu Web Essentials ile de yapabilirsiniz , dosyaları sağ tıklayıp içerik menüsü> Web Essential >> Seçilen dosyaları farklılaştır:

Düzenleme: Artık ayrı bir uzantı olarak kullanılabilir

resim açıklamasını buraya girin


Seçili dosyaları görmüyorum veya Web Essential'da HTML'ye Markdown Derlemesini görmüyorum - VS 2015
yararlı

İçin yeni bir sürüm yükledim VS 2015ama Diff selected filesneden seçeneği göremiyorum ?
shaijut

@stom bahsettiğim uzantıyı yükleyin.
Hamid Mosalla


8

Gelen Visual Studio Kodu şunları yapabilirsiniz:

  • Şuraya git: Explorer
  • Karşılaştırmak istediğiniz ilk dosyayı sağ tıklayın
  • seçmek Select for compare
  • Karşılaştırmak istediğiniz ikinci dosyayı sağ tıklayın
  • seçmek Compare with '[NAME OF THE PREVIOUSLY SELECTED FILE]'

Bu, belirttiğiniz gibi Visual Studio Code'da harika çalışıyor, ancak ne yazık ki Visual Studio Enterprise'da (ne de Professional'da) çalışmıyor.
Eptin


4

GÜNCELLENDİ: VS 2019 Dosya Farklı Eklentisi İçin Dosyaları farklı proyektlerde karşılaştırmaya izin ver resim açıklamasını buraya girin

resim açıklamasını buraya girin

Buradan yükleyebilirsiniz:

resim açıklamasını buraya girin

ESKİ: VS 2017 için Yükleme https://marketplace.visualstudio.com/items?itemName=vs-publisher-457497.FileComparer2017

Sorun, farklı proyects'teki dosyaları karşılaştıramamanız, ancak karşılaştırmak için aynı projedeki dosyaları kopyalayabilirsiniz ...

Dosya Farklılığı


1
Ne yazık ki, çözüm olmadan iki dosyayı karşılaştırmaya çalışırken (örneğin, VS2017'yi klasör modunda açtığınızda: Açık - Klasör)
Yury Kozlov

2

Ben de bu problemi yaşadım. TFS yok, ancak bu makaleyi yararlı buldum .

Özellikle, adım 1b.

Bir Visual Studio komut istemi açın ve Common7 / IDE klasörüne gidin ve yazın

tf diff /configure

0

Akhil Mittal Dosya Karşılaştırma VS Uzantısı. İşi yapan mükemmel hafif araç.


0

Herhangi iki dosyayı karşılaştırmak ve bir dosyayla birleştirmek için Visual studio (Any version) yüklüyse aşağıdaki adımları takip edebilirsiniz.

Adım 1: Visual studio komut istemini açın. Visual studio komut istemini bulamazsanız visual studio araçlarını seçin

Başlat -> Visual studio komut istemi

resim açıklamasını buraya girin

resim açıklamasını buraya girin

Adım 2: vsdiffmerge.exe komutunu girin

Sadece karşılaştırmaya ihtiyacınız varsa anahtarı / m'yi dikkate almayın.

Sözdizimi 1:
vsdiffmerge <file1> <file2> <file1> <outputfile> / t / m

Sözdizimi 2:
vsdiffmerge <basefilename> <CompareFilename> <basefilename> <OutputFilename> / t / m

Örnek 1:
vsdiffmerge test1.js test2.js test1.js output.js / t / m
Örnek 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: \ Kullanıcılar \ livingston \ İndirmeler \ wa \ wa \ Dosyalar \ output \ samp.js "/ t / m

resim açıklamasını buraya girin


3. Adım: Dosyaları birleştirin

resim açıklamasını buraya girin Dosya adı konumda olup etmiyorsa, o unutmayınız değil karşılaştırıcısı açın.

Ayrıca karşılaştırma yapmadan önce dosyayı güzelleştirebilirsiniz. Görsel stüdyoda Ctrl + K + D.

Online güzelleştirici siteleri çok var.


0

Visual Studio kodu bunun için harika - bir klasör açın, her iki dosyayı sağ tıklayın ve karşılaştırın.


0

Visual Studio'da fark Command Windowve sonra Tools.DiffFileskomutunu kullanarak çağrılabilir

  1. Command Windowkısayol tuşları ile Ctrl + W, Aveya menü ileView -> Other Windows -> Command Window
  2. Komutu girin Tools.DiffFiles "FirstFile.cs" "SecondFile.cs"


-4

Bağlı TFS ile çalışıyorsanız, karşılaştırmanız gereken dosyaya sağ tıklayın (kaynak kontrol gezgini aracılığıyla) ve size böyle bir pencere sunar - resim açıklamasını buraya girin

Şimdi kaynak dosyasının yolunu 'Souce Path:' ile değiştirin ve VS karşılaştırma aracı ile karşılaştırma yapın.

Benzer şekilde, bir klasörün tüm dosyalarını aynı anda karşılaştıran klasörü de karşılaştırabilirsiniz.


2
Orijinal yazıyı okursanız, "VS'de yerleşik özellikli ancak TFS olmadan iki dosyayı nasıl karşılaştırabilirim?" Cevabınız TFS'ye sahip olmasını gerektiriyor.
CigarDoug

cevap vermeye çalıştı ama .. girişimi yanlıştı +1
Irf
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.