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

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


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

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

会告诉你怎么做吗


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

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


我也有这个问题。没有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,有一个方便的文件名补全:


我相信这是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 Essentials来实现。只需右键单击文件,然后从上下文菜单→Web Essential→Diff所选文件:

它也可以作为一个单独的扩展。


Akhil Mittal开发的File Comparer Visual Studio扩展是一个很好的轻量级工具。


受到上面Vladimir Reshetnikov回答的启发,我找到了一种非常舒服的方法,可以通过拖放或“发送到”上下文菜单在Visual Studio中立即比较两个文件。它只需要一点点准备,你只需要做一次,然后它就像瑞士军刀一样有用。

Visual Studio已经有了你需要的一切,并且只需要一些配置步骤就可以使其工作:

文件比较使用拖放

准备:

Create a new batch file using your favorite text editor. Type the following: @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' You might notice that I have reversed the %1 and %2 parameters in the batch. This is because I noticed that the file explorer passes the second file as the first parameter, and then the first file as the second parameter. Save this code as VS_FileCompare.cmd to use it, and modify vspath if required to match the location of devenv.exe (depending on the Visual Studio version you're currently using, see footnote*) ) Either create a shortcut named "File Compare" for VS_FileCompare.cmd and place it on the desktop (as used in the animation below), so it is always available to drag & drop files onto it or directly place the batch file on the desktop. That's all!

用法:

通过Win + E打开Windows资源管理器 在资源管理器中选择两个文件进行比较 拖放它们,如下图所示: 几秒钟后(取决于Visual Studio的启动时间),结果将在Visual Studio中显示:

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


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

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

准备:

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

用法:

通过Win + E打开Windows资源管理器 在资源管理器中选择两个文件进行比较 假设批处理文件VS_FileCompare的快捷方式为。cmd被命名为"Compare2Files VS",你可以选择这两个文件,右键单击并选择Send To→Compare2Files VS来调用比较,如下所示: 几秒钟后(取决于Visual Studio的启动时间),结果将在Visual Studio中显示:

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


MSDN引用:

diff窗口的使用 Visual Studio的Diff参数


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

在Windows开始菜单中,找到Visual Studio图标 右键单击弹出上下文菜单。选择“更多→打开文件位置”。Windows资源管理器将以高亮显示的Visual Studio快捷方式打开。 右键单击Visual Studio并选择属性 在属性对话框中,你可以在“Target:”中找到路径。


用屏幕转gif创建的动画


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

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

开始→Visual Studio命令提示符

步骤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

步骤3:合并文件

请注意,如果文件名称不存在的位置,它将不会打开比较器。

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

网上有很多美容师网站。


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

Tools.DiffFiles File1 File2

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

你可以从这里安装:

OLD:

对于Visual Studio 2017,安装*[FileComparer2017][4]* 问题是你不能比较不同项目中的文件,但是你可以复制同一个项目中的文件来比较…


Visual Studio扩展:Mads Kristensen的文件不同


在Visual Studio中,diff可以使用命令窗口和工具调用。DiffFiles命令

通过热键Ctrl + W、A或菜单View→其他窗口→命令窗口打开命令窗口 输入命令Tools。DiffFiles "FirstFile.cs" "SecondFile.cs"


当使用带有本地化语言的Visual Studio时,您在命令窗口中编写的命令也必须本地化。 例如,我的VS2019是葡萄牙语的,所以,我必须写这个命令:

Ferramentas。CompararArquivos

您可以通过菜单显示命令窗口(在我的例子中是Janela de Comando) 查看>其他窗口>命令窗口或在我的情况下Exibir > outas Janelas > Janela de Comando