494

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

有没有一种方法可以将两个文件与 Visual Studio 中的内置功能(但没有 TFS)进行比较?

4

16 回答 16

905

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

在 Visual Studio 命令窗口中使用 Tools.DiffFiles

于 2013-07-15T21:59:57.540 回答
116

受上述Vladimir Reshetnikov 回答的启发,我找到了一种非常舒适的方法,您可以通过拖放“发送到”上下文菜单立即将两个文件与 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

用法:

  1. 通过+打开Windows 资源管理器WinE

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

  3. 拖放它们,如下面的动画所示:

    拖放演示

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

    Visual Studio 视图

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


替代方式:SendTo 上下文菜单

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

准备:

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

用法:

  1. 通过+打开Windows 资源管理器WinE

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

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

    发送至

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

    Visual Studio 视图

提示:如果您喜欢 SendTo 文件夹方法,您可以做更多事情 - 例如,您可以通过 SendTo 直接打开命令外壳,它以正确的路径(所选文件所在的路径)开始。看这里,了解如何做到这一点。您甚至可以将它与脚本结合使用,从而获得更高的权限,只需付出一点额外的努力。


MSDN 参考资料:


*) 脚注:因为vsPath(路径DEVENV.exe)因您的 Visual Studio 版本而异,所以我正在描述如何找到它(Windows 10):

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

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

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

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

    VS 属性

于 2017-08-16T13:14:13.577 回答
80

您可以尝试Visual Studio Gallery中的VSCommands扩展。

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

在此处输入图像描述

在此处输入图像描述

于 2012-12-06T22:29:12.940 回答
49

(命令窗口)(Ctrl+ Alt+ A):

Tools.DiffFiles File1 File2
于 2018-02-21T21:37:01.330 回答
31

Visual Studio 扩展:Mads Kristensen文件差异

比较文件截图

于 2019-06-06T19:27:25.257 回答
25

我一直是WinMerge的粉丝,这是一个开源项目。你可以很容易地将它插入到 Visual Studio 中。

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

将告诉你如何做到这一点

于 2012-12-06T21:38:43.443 回答
24

还有一个名为CompareFiles的 Visual Studio 扩展,它只是将“比较文件”条目添加到解决方案资源管理器上下文菜单中。它调用内置的 Visual Studio 差异工具。

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

于 2013-06-12T07:25:35.390 回答
18

在 Visual Studio 2012、2013、2015 中,您也可以使用Web Essentials来完成。只需右键单击文件,然后从上下文菜单 → Web EssentialDiff selected files

在此处输入图像描述

它也可以作为单独的扩展使用。

于 2015-09-17T09:29:34.467 回答
17

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

在此处输入图像描述

在此处输入图像描述

你可以从这里安装它:

在此处输入图像描述

老的:

对于 Visual Studio 2017,安装 *[FileComparer2017][4]*

问题是不能比较不同项目中的文件,但是可以复制同一个项目中的文件进行比较...

文件差异

于 2018-07-21T19:51:10.757 回答
15

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

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

或对于Visual Studio 2013

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

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

于 2014-10-31T18:25:13.237 回答
6

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

  1. Command Window通过热键Ctrl+WA菜单ViewOther WindowsCommand Window打开
  2. 输入命令Tools.DiffFiles "FirstFile.cs" "SecondFile.cs"
于 2020-03-06T12:48:43.263 回答
2

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

具体来说,步骤 1b。

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

tf diff /configure
于 2013-05-05T14:59:40.023 回答
0

Akhil Mittal 的File Comparer Visual Studio 扩展是一个出色的轻量级工具,可以完成这项工作。

于 2016-11-03T19:53:32.057 回答
0

要比较任意两个文件并将其合并到一个文件中,如果您安装了 Visual Studio(任何版本),可以按照以下步骤操作。

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

开始 → Visual Studio 命令提示符

在此处输入图像描述

在此处输入图像描述

第二步:输入命令 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

在此处输入图像描述

第三步:合并文件

在此处输入图像描述

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

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

网上有很多美容网站。

于 2018-01-19T07:04:06.933 回答
0

使用本地化语言的 Visual Studio 时,您在 CommandWindow 中编写的命令也必须本地化。例如,我的 VS2019 是葡萄牙语,所以我必须编写以下命令:

Ferramentas.CompararArquivos

在此处输入图像描述

您可以通过菜单 View > Other Windows > Command Window 或在我的情况下为 Exibir > Outras Janelas > Janela de Comando 显示命令窗口(在我的情况下为 Janela de Comando)

在此处输入图像描述

于 2022-03-02T13:37:24.253 回答
-2

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

于 2014-09-15T14:42:23.953 回答