比较Visual Studio中的两个文件

Compare two files in Visual Studio

我在VS 2012中看到了新的比较工具,用于比较两个文件或文件的两个版本。 我喜欢。 但是,当我尝试找到它时,因为我不使用TFS,所以无法。 有没有一种方法可以只比较两个具有VS中内置功能但没有TFS的文件?


您可以从命令提示符处调用devenv.exe /diff list1.txt list2.txt,或者,如果已经在运行Visual Studio实例,则可以在"命令"窗口中键入Tools.DiffFiles,并使用方便的文件名完成操作:

Using Tools.DiffFiles from Visual Studio Command window


您可以从Visual Studio画廊尝试VSCommands扩展。
最新版本允许您选择两个文件并进行比较:

enter image description here
enter image description here


受到上面接受的答案的启发,我发现了一种非常舒适的方法,您可以通过拖放或通过"发送到"上下文菜单立即使用Visual Studio比较两个文件。它只需要做一点准备,您需要做一次,然后它就像瑞士军刀一样有用。

使用拖放进行文件比较

准备:

1.使用您喜欢的文本编辑器创建一个新的批处理文件。输入以下内容:

1
2
3
4
@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参数。这是因为我注意到文件浏览器将第二个文件作为第一个参数传递,然后将第一个文件作为第二个参数传递。

  • 将此代码另存为VS_FileCompare.cmd以便使用,如果需要,请修改vspath以匹配devenv.exe的位置(取决于您当前使用的Visual Studio版本,请参见脚注*))

  • VS_FileCompare.cmd创建一个名为"文件比较"的快捷方式,然后将其放置在桌面上(如下面的动画所示),因此始终可以将文件拖放到该文件上,或者直接将批处理文件放置在桌面上。就这样!

  • 用法:

  • 通过Win + E打开Windows资源管理器
  • 选择两个文件以在资源管理器中进行比较
  • 如下图所示,将它们拖放:
    DragDropDemo

  • 几秒钟后(取决于Visual Studio的启动时间),结果将显示在Visual Studio中:
    Visual Studio View

  • 注意:如果Visual Studio已打开,则不会造成损害。在这种情况下,它将在运行的Visual Studio实例中打开一个新窗口。因此,您可以比较多个文件对,但是请确保一次仅选择2个文件。

    另一种方法:SendTo上下文菜单

    这是替代方法,您可以使用上面部分中提到的批处理文件VS_FileCompare.cmd。它允许使用上下文菜单的"发送到"文件夹来比较文件。

    制备:

  • 为批处理文件VS_FileCompare.cmd创建快捷方式" Compare2Files VS",并将其复制到SendTo文件夹中。通过Win + E打开Windows资源管理器
  • 通过在文件浏览器的地址栏中输入shell:sendto,打开SendTo文件夹(如此处所述)。然后,将准备好的快捷方式放入此文件夹。
  • 用法:

  • 通过Win + E打开Windows资源管理器
  • 选择两个文件以在资源管理器中进行比较
  • 假设批处理文件VS_FileCompare.cmd的快捷方式名为" Compare2Files VS",则可以选择两个文件,单击鼠标右键,然后选择"发送至-> Compare2Files VS"以调用比较,如下所示:
    SendTo

  • 几秒钟后(取决于Visual Studio的启动时间),结果将显示在Visual Studio中:
    Visual Studio View

  • MSDN参考:
    -差异窗口的用法
    -Visual Studio的Diff参数

    *)脚注:由于vspath(devenv.exe的路径)根据您的Visual Studio版本而有所不同,因此,我将描述如何找到它(Windows 10):

  • 在Windows开始菜单Windows Start中,找到Visual Studio图标
  • 右键单击以打开上下文菜单。选择"更多">"打开文件位置"。
    打开Windows资源管理器,突出显示Visual Studio快捷方式。
  • 右键单击Visual Studio,然后选择"属性"。
  • 在属性对话框中,您可以在"目标:"中找到路径
    VSProperties

  • 我一直是WinMerge的粉丝,这是一个开源项目。您可以相当轻松地将其插入Visual Studio。

    Replace diff/merge tool in Visual Studio Team System with WinMerge

    会告诉你如何做


    还有一个名为CompareFiles的Visual Studio扩展,除了将"比较文件"条目添加到解决方案资源管理器上下文菜单外,它什么也不做。它调用内置的Visual Studio差异工具。

    以防万一(像我这样)不想安装像VSCommands这样的多合一扩展...


    在Visual Studio 2012、2013、2015中,您也可以使用Web Essentials进行操作,只需右键单击文件,然后从上下文菜单> Web Essential >>区分所选文件:

    编辑:现在可以作为单独的扩展程序使用

    enter image description here


    Command Window(CTRL + ALT + A)

    1
    Tools.DiffFiles File1 File2


    如果您已安装VS,也可以致电

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

    或VS 2013

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

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


    对于VS 2017安装
    https://marketplace.visualstudio.com/items?itemName=vs-publisher-457497.FileComparer2017

    问题是您无法比较不同proyects中的文件,但可以将文件复制到同一项目中进行比较...

    Context Menu

    File Diference


    我也有这个问题。没有TFS,但是我发现本文很有帮助。

    具体地,步骤1b。

    打开Visual Studio命令提示符,然后导航到Common7 / IDE文件夹并键入

    1
    tf diff /configure

    在Visual Studio Code中,您可以:

    • 转到Explorer
    • 右键单击要比较的第一个文件
    • 选择Select for compare
    • 右键单击要比较的第二个文件
    • 选择Compare with '[NAME OF THE PREVIOUSLY SELECTED FILE]'


    Akhil Mittal的文件比较器VS扩展。
    出色的轻巧工具,可以完成工作。


    VS扩展:Mads Kristensen的文件差异

    compare files screenshot


    比较任何两个文件并将其合并到一个文件中如果安装了Visual Studio(任何版本),则可以执行以下步骤。

    步骤1:打开Visual Studio命令提示符。如果找不到Visual Studio命令提示符,请选择Visual Studio工具

    开始-> Visual Studio命令提示符

    enter image description here

    enter image description here

    步骤2:输入命令vsdiffmerge.exe

    如果只需要比较,请忽略/ m开关。

    语法1:
    vsdiffmerge <文件1> <文件2> <文件1> <输出文件> / t / m

    语法2:
    vsdiffmerge <基本文件名> <比较文件名> <基本文件名> <输出文件名> / t / m

    示例1:
    vsdiffmerge test1.js test2.js test1.js output.js / t / m

    示例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

    enter image description here



    步骤3:合并文件

    enter image description here
    请注意,如果该位置不存在文件名,则不会打开比较器。

    您也可以在进行比较之前美化文件。在Visual Studio中,按Ctrl + K +D。

    在线有很多美化网站。


    Visual Studio代码对此非常有用-打开一个文件夹,右键单击两个文件并进行比较。


    我相信这是Visual Studio 2012更好的扩展之一,它被称为"代码比较",可以在这里找到。


    如果您正在使用连接的TFS,则右键单击您需要比较的文件(通过源代码管理浏览器),它会为您显示一个这样的窗口-enter image description here

    现在,在" Souce Path:"中更改源文件的路径,即可通过VS比较工具进行比较。

    同样,您也可以比较文件夹,它一次比较一个文件夹的所有文件。