我在Visual Studio 2012中看到了新的比较工具,可以用于比较两个文件或同一文件的两个版本。我很喜欢它。但当我尝试查找它时,我找不到它,因为我没有使用TFS。
有没有办法只使用Visual Studio内置的功能(而不需要TFS)来比较两个文件?
我在Visual Studio 2012中看到了新的比较工具,可以用于比较两个文件或同一文件的两个版本。我很喜欢它。但当我尝试查找它时,我找不到它,因为我没有使用TFS。
有没有办法只使用Visual Studio内置的功能(而不需要TFS)来比较两个文件?
devenv.exe /diff list1.txt list2.txt
,或者如果已经有Visual Studio实例在运行,则可以在Command窗口中键入Tools.DiffFiles
,并使用方便的文件名自动完成功能:在最新的 Visual Studio 预览版(版本 17.7.0 预览版 5.0)中,您现在可以使用解决方案资源管理器中的上下文菜单来比较文件。
示例:
要么你选择一个文件,然后通过上下文菜单中的“与...比较”选项选择第二个文件(屏幕截图左侧)。使用您喜欢的文本编辑器创建一个新的批处理文件。输入以下内容:
@echo off
setlocal
set vspath=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE
start "比较文件" /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资源管理器
在资源管理器中选择两个要比较的文件
按照下面的动画所示,将它们拖放到指定位置:
几秒钟后(取决于Visual Studio的启动时间),结果将显示在Visual Studio中:
注意:如果Visual Studio已经打开,不会有任何影响。在这种情况下,它只会在运行中的Visual Studio实例中打开一个新窗口。因此,您可以比较多个文件对,但请确保每次只选择两个文件。
这是一个替代方法,您可以使用上面提到的批处理文件VS_FileCompare.cmd
。它允许使用上下文菜单中的“发送到文件夹”来比较文件。
准备工作:
VS_FileCompare.cmd
创建一个名为"Compare2Files VS"的快捷方式,并将其复制到发送到文件夹中。通过按下Win + E组合键打开Windows资源管理器shell:sendto
(如此处所述),打开发送到文件夹。然后,将准备好的快捷方式放入该文件夹中。使用方法:
VS_FileCompare.cmd
的快捷方式命名为 "Compare2Files VS",您可以选择这两个文件,右键点击并选择 发送到 → Compare2Files VS 来执行比较操作,如下图所示:提示:如果您喜欢使用SendTo文件夹的方法,您还可以做更多的事情 - 例如,您可以直接通过SendTo打开命令Shell,并且它会以正确的路径(选择的文件所在的路径)开始。点击这里找出如何做到这一点。您甚至可以将其与脚本结合起来,通过额外的努力获得提升的权限。
MSDN参考文档:
*) 注释:由于vsPath
(指向DEVENV.exe
的路径)根据您使用的Visual Studio版本而有所不同,因此我将描述如何找到它(适用于Windows 10):
使用Screen to gif创建的动画
C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe
。在for
循环中解析其输出将获得Visual Studio的路径。 - Tsahi Asher(命令窗口) (Ctrl + Alt + A):
Tools.DiffFiles File1 File2
Tools.DiffFiles
这一事实。 - Wayne IvoryVisual Studio扩展:File Differ由Mads Kristensen开发。
我一直是WinMerge的粉丝,这是一个开源项目。你可以很容易地将它插入到Visual Studio中。
这将向您展示如何做到这一点
还有一个名为CompareFiles的Visual Studio扩展,它的唯一作用是在Solution Explorer上下文菜单中添加“比较文件”条目。它调用了内置的Visual Studio差异工具。
以防万一有人(例如我)不想安装像VSCommands这样的全能扩展...
它也可以作为单独的扩展使用。
VS 2015
的新版本,但为什么我看不到 Diff selected files
选项? - Shaiju T"%VS110COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2"
或者适用于Visual Studio 2013:
"%VS120COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2"