比较Visual Studio中的两个文件

我在Visual Studio 2012中看到了新的比较工具,用于比较两个文件或一个文件的两个版本。我喜欢它。但是当我试图找到它时,我找不到它,因为我没有使用TFS

是否有一种方法,我可以比较两个文件的内置功能在Visual Studio(但没有TFS)?

451700 次浏览

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

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

会告诉你怎么做吗

你可以试试VSCommands扩展从Visual Studio Gallery

最新版本允许你选择两个文件并进行比较:

Enter image description here

Enter image description here

我也有这个问题。没有TFS,但我发现文章将文件类型与文件比较工具关联有帮助。

具体来说,步骤1b。

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

tf diff /configure

还有一个名为CompareFiles的Visual Studio扩展,它除了添加“比较文件”之外什么也不做。解决方案资源管理器上下文菜单的入口。它调用内置的Visual Studio diff工具。

以防有人(比如我)不想安装一个像VSCommands这样的一体化扩展…

你可以从Visual Studio开发人员命令提示符中调用devenv.exe /diff list1.txt list2.txt,或者,如果Visual Studio实例已经在运行,你可以在命令窗口中输入Tools.DiffFiles,使用一个方便的文件名补全:

Using Tools. . conf”修改文件

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

如果你安装了Visual Studio,你也可以调用

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

Visual Studio 2013:

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

来源:使用Visual Studio作为本地文件的差异和合并工具

在Visual Studio 2012、2013、2015中,你也可以用Web本质来实现。只需右键单击文件,从上下文菜单→网络至关重要Diff所选文件:

Enter image description here

它也可用单独的扩展

Akhil Mittal的文件比较器 Visual Studio扩展是一个很好的轻量级工具,可以完成这项工作。

受到上面的Vladimir Reshetnikov的回答的启发,我发现了一种非常舒服的方法,通过使用拖放“发送To"上下文菜单,可以在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. 将此代码保存为VS_FileCompare.cmd以使用它,并在需要时修改vspath以匹配devenv.exe的位置(取决于您当前使用的Visual Studio版本,请参阅脚注*))

  3. VS_FileCompare.cmd创建一个名为“文件Compare"快捷方式,并将其放置在桌面上(如下图所示),因此它总是可以拖动&将文件放到上面,或者直接将批处理文件放在桌面上。这是所有!

用法:

  1. 通过赢得 + E打开Windows资源管理器

  2. 在资源管理器中选择两个文件进行比较

  3. 拖放它们,如下图所示:

    DragDropDemo

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

    Visual Studio View

注意:如果Visual Studio已经打开,这没有伤害。在这种情况下,它只会在Visual Studio的运行实例中打开一个新窗口。因此,您可以比较多个文件对,但请确保一次只选择两个文件。


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

下面是如何使用上一节中提到的批处理文件VS_FileCompare.cmd的另一种方法。它允许使用上下文菜单的发送到文件夹来比较文件。

准备:

  1. 为批处理文件VS_FileCompare.cmd创建一个快捷方式“Compare2Files VS",并将其复制到发送到文件夹中。通过赢得 + E打开Windows资源管理器
  2. 通过在文件资源管理器的地址栏中输入shell:sendto(如在这里所述)打开发送到文件夹。然后,将准备好的快捷方式放入此文件夹。

用法:

  1. 通过赢得 + E打开Windows资源管理器

  2. 在资源管理器中选择两个文件进行比较

  3. 假设批处理文件VS_FileCompare.cmd的快捷方式名为“Compare2Files VS",你可以选择这两个文件,右键单击并选择发送到→Compare2Files VS .来调用比较,如下所示:

    SendTo

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

    Visual Studio View

提示:如果你喜欢SendTo文件夹方法,还有更多你可以做的-例如,你可以直接通过SendTo打开一个命令shell,它以正确的路径开始(所选文件所在的路径)。看起来来看看该怎么做。你甚至可以将它与脚本组合到获得更高的权利,只需要一点点额外的努力。


MSDN引用:


*) 补充说明:因为vsPath (DEVENV.exe的路径)根据你的Visual Studio版本而不同,我正在描述如何找到它(Windows 10):

  1. Windows开始菜单 Windows Icon Small中,找到Visual Studio图标 Visual Studio Icon Small

  2. 右键打开上下文菜单。选择更多的打开文件位置
    Windows资源管理器打开,Visual Studio快捷方式突出显示。

  3. 右键单击Visual Studio并选择属性

  4. 在属性对话框中,你可以在“目标:“中找到路径

    VSProperties


屏幕到gif

要比较任意两个文件并将其合并为一个文件,如果您安装了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 <file1> <file2> <file1> <outputfile> /t /m

语法2:

vsdiffmerge <basefilename> <CompareFilename> <basefilename> <OutputFilename> /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

网上有很多美容师网站。

(命令窗口)(Ctrl + Alt + 一个):

Tools.DiffFiles File1 File2

对于Visual Studio 2019, 文件不同插件允许比较不同项目中的文件:

Enter image description here

Enter image description here

你可以从这里安装:

Enter image description here

旧:

对于visual studio 2017,请安装*[FileComparer2017][4]*

问题是你不能比较不同项目中的文件,但是你可以复制同一个项目中的文件来比较…

文件差异 < /罢工> < / p >

Visual Studio扩展:文件不同 by 马德斯Kristensen

Compare files截图

在Visual Studio中,diff可以使用Command Window调用,然后使用Tools.DiffFiles命令调用

  1. 通过热键Ctrl + W一个或通过菜单视图其他窗口命令窗口打开Command Window
  2. 输入命令Tools.DiffFiles "FirstFile.cs" "SecondFile.cs"
当使用带有本地化语言的Visual Studio时,您在命令窗口中编写的命令也必须本地化。 例如,我的VS2019是葡萄牙语,所以,我必须写这个命令:

Ferramentas。CompararArquivos

enter image description here

你可以通过菜单显示命令窗口(在我的例子中是Janela de Comando) 视图比;其他Windows >命令窗口或,在我的情况下Exibir >欧拉斯·贾内拉斯>Janela de Comando

enter image description here