我在 Visual Studio 2012 中看到了用于比较两个文件或一个文件的两个版本的新比较工具。我喜欢。但是当我试图找到它时,我找不到它,因为我不使用TFS。
有没有一种方法可以将两个文件与 Visual Studio 中的内置功能(但没有 TFS)进行比较?
我在 Visual Studio 2012 中看到了用于比较两个文件或一个文件的两个版本的新比较工具。我喜欢。但是当我试图找到它时,我找不到它,因为我不使用TFS。
有没有一种方法可以将两个文件与 Visual Studio 中的内置功能(但没有 TFS)进行比较?
您可以从 Visual Studio 开发人员命令提示符调用devenv.exe /diff list1.txt list2.txt
,或者,如果 Visual Studio 实例已经在运行,您可以Tools.DiffFiles
在命令窗口中键入,并使用方便的文件名完成:
受上述Vladimir Reshetnikov 回答的启发,我找到了一种非常舒适的方法,您可以通过拖放或“发送到”上下文菜单立即将两个文件与 Visual Studio 进行比较。它只需要一点准备,你需要做一次,然后它就像瑞士军刀一样有用。
Visual Studio已经拥有您需要的一切,并且只需要一些配置步骤即可使其正常工作:
准备:
使用您喜欢的文本编辑器创建一个新的批处理文件。键入以下内容:
@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
用法:
通过+打开Windows 资源管理器WinE
在资源管理器中选择两个文件进行比较
拖放它们,如下面的动画所示:
几秒钟后(取决于 Visual Studio 的启动时间),结果将显示在 Visual Studio 中:
注意:如果 Visual Studio 已打开,则不会造成任何损害。在这种情况下,它只会在 Visual Studio 的运行实例中打开一个新窗口。因此您可以比较多个文件对,但请确保您一次只选择了两个文件。
这是使用上VS_FileCompare.cmd
一节中提到的批处理文件的另一种方法。它允许使用上下文菜单的发送到文件夹来比较文件。
准备:
VS_FileCompare.cmd
并将其复制到SendTo文件夹中。通过+打开Windows 资源管理器WinEshell:sendto
用法:
通过+打开Windows 资源管理器WinE
在资源管理器中选择两个文件进行比较
假设批处理文件的快捷方式VS_FileCompare.cmd
名为"Compare2Files VS",您可以选择这两个文件,右键单击并选择Send To → Compare2Files VS调用比较,如下所示:
几秒钟后(取决于 Visual Studio 的启动时间),结果将显示在 Visual Studio 中:
提示:如果您喜欢 SendTo 文件夹方法,您可以做更多事情 - 例如,您可以通过 SendTo 直接打开命令外壳,它以正确的路径(所选文件所在的路径)开始。看这里,了解如何做到这一点。您甚至可以将它与脚本结合使用,从而获得更高的权限,只需付出一点额外的努力。
MSDN 参考资料:
*) 脚注:因为vsPath
(路径DEVENV.exe
)因您的 Visual Studio 版本而异,所以我正在描述如何找到它(Windows 10):
您可以尝试Visual Studio Gallery中的VSCommands扩展。
最新版本允许您选择两个文件并进行比较:
(命令窗口)(Ctrl+ Alt+ A):
Tools.DiffFiles File1 File2
Visual Studio 扩展:Mads Kristensen的文件差异
我一直是WinMerge的粉丝,这是一个开源项目。你可以很容易地将它插入到 Visual Studio 中。
将告诉你如何做到这一点
还有一个名为CompareFiles的 Visual Studio 扩展,它只是将“比较文件”条目添加到解决方案资源管理器上下文菜单中。它调用内置的 Visual Studio 差异工具。
以防万一有人(比如我)不想安装像VSCommands这样的一体化扩展......
在 Visual Studio 2012、2013、2015 中,您也可以使用Web Essentials来完成。只需右键单击文件,然后从上下文菜单 → Web Essential → Diff selected files:
它也可以作为单独的扩展使用。
如果你安装了 Visual Studio,你也可以调用
"%VS110COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2"
"%VS120COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2"
在 Visual Studio 中,可以使用 diff 调用Command Window
,然后使用Tools.DiffFiles
命令
Command Window
通过热键Ctrl+W或A菜单View → Other Windows → Command Window打开Tools.DiffFiles "FirstFile.cs" "SecondFile.cs"
我也有这个问题。没有 TFS,但我发现将文件类型与文件比较工具相关联的文章很有帮助。
具体来说,步骤 1b。
打开 Visual Studio 命令提示符并导航到Common7/IDE文件夹并键入
tf diff /configure
Akhil Mittal 的File Comparer Visual Studio 扩展是一个出色的轻量级工具,可以完成这项工作。
要比较任意两个文件并将其合并到一个文件中,如果您安装了 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
网上有很多美容网站。
我相信这是 Visual Studio 2012 更好的扩展之一。它被称为代码比较,可以在这里找到。