我在VS 2012中看到了新的比较工具,用于比较两个文件或两个版本的文件。我喜欢。但是当我试图找到它时我不能因为我不使用TFS。有没有办法如何在VS中比较具有内置功能但没有TFS的两个文件?
答案 0 :(得分:729)
您可以从命令提示符调用devenv.exe /diff list1.txt list2.txt
,或者,如果Visual Studio实例已在运行,您可以在命令窗口中键入Tools.DiffFiles
,并使用方便的文件名完成:
答案 1 :(得分:76)
您可以尝试VSCommands extension from Visual Studio Gallery。 Latest release允许您选择两个文件并进行比较:
答案 2 :(得分:52)
受上面接受的答案的启发,我发现了一种非常舒适的方式,您可以通过拖放或通过“发送到”上下文立即与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
参数。这是因为我注意到文件浏览器将第二个文件作为第一个参数传递,然后将第一个文件作为第二个参数。
将此代码保存为 VS_FileCompare.cmd
以使用它,如果需要,则修改vspath
以匹配devenv.exe
的位置(取决于您目前使用的Visual Studio版本,请参阅脚注 *))
为VS_FileCompare.cmd
创建名为“文件比较”的快捷方式,并将其放在桌面上(如用于下面的动画),所以它总是可用于拖动和放大将文件拖放到其上或直接将批处理文件放在桌面上。这就是全部!
<强>用法:强>
注意:如果Visual Studio已经打开,则不会造成损害。在这种情况下,它只会在正在运行的Visual Studio实例中打开一个新窗口。因此,您可以比较多个文件对,但请确保您一次只选择了2个文件。
以下是您可以使用上一节中提到的批处理文件 VS_FileCompare.cmd
的替代方法。它允许使用上下文菜单的Send To文件夹来比较文件。
<强>制备强>
VS_FileCompare.cmd
创建快捷方式“Compare2Files VS”,然后将其复制到 SendTo 文件夹中。通过赢取 + E shell:sendto
,打开 SendTo 文件夹(如here所述)。然后,将准备好的快捷方式放入此文件夹中。<强>用法:强>
假设批处理文件 VS_FileCompare.cmd
的快捷方式名为“Compare2Files VS”,您可以选择这两个文件,右键单击并选择发送至 - &gt; Compare2Files VS 调用比较,如下所示:
MSDN参考:
- Usage of diff window
- Visual Studio's Diff parameter
*) 脚注:因为vsPath
(DEVENV.exe
的路径)因Visual Studio的版本而异,所以我在描述如何你可以找到它(Windows 10):
答案 3 :(得分:24)
我一直是WinMerge的粉丝,WinMerge是一个开源项目。您可以非常轻松地将其插入Visual Studio。
将告诉你如何做到这一点
答案 4 :(得分:21)
还有一个名为CompareFiles的Visual Studio扩展,除了将“Compare Files”条目添加到解决方案资源管理器上下文菜单之外,它什么都不做。它调用内置的Visual Studio diff工具。
以防有人(像我一样)不想安装像VSCommands这样的多功能扩展程序...
答案 5 :(得分:18)
在Visual Studio 2012,2013,2015中,您也可以使用Web Essentials执行此操作,只需右键单击文件,然后从上下文菜单&gt;中进行操作。 Web Essential&gt;&gt;差异选择文件:
修改:现在可以separate extension
的形式使用答案 6 :(得分:15)
如果你安装了VS,你也可以打电话给
"%VS110COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2"
或VS 2013
"%VS120COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2"
来源:http://roadtoalm.com/2013/10/22/use-visual-studio-as-your-diff-and-merging-tool-for-local-files/
答案 7 :(得分:15)
Command Window
( CTRL + ALT + A )
Tools.DiffFiles File1 File2
答案 8 :(得分:2)
我也有这个问题。没有TFS,但是我found this article helpful。
具体而言,步骤1b。
打开Visual Studio命令提示符并导航到Common7 / IDE文件夹并键入
tf diff /configure
答案 9 :(得分:2)
对于VS 2017安装 https://marketplace.visualstudio.com/items?itemName=vs-publisher-457497.FileComparer2017
问题是您无法比较不同proyects中的文件,但是可以将文件复制到同一项目中进行比较...
答案 10 :(得分:1)
在 Visual Studio代码中,您可以:
Explorer
Select for compare
Compare with '[NAME OF THE PREVIOUSLY SELECTED FILE]'
答案 11 :(得分:0)
Akhil Mittal的文件兼容VS扩展。 完美的轻量级工具,可以完成工作。
答案 12 :(得分:0)
比较任意两个文件并将其合并到一个文件如果安装了visual studio(任何版本),可以执行以下步骤。
步骤1:打开Visual Studio命令提示符。如果找不到visual studio命令提示符,请选择visual studio tools
开始 - &gt; Visual Studio命令提示符
第2步:输入命令vsdiffmerge.exe
如果只需要比较,请忽略开关/ m。
语法1:
vsdiffmerge&lt; file1&gt; &LT; file2的&GT; &LT; file1的&GT; &LT; OUTPUTFILE&GT; / t / m
语法2:
vsdiffmerge&lt; basefilename&gt; &LT; CompareFilename&GT; &LT; basefilename&GT; &LT; OutputFilename&GT; / 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.
网上有很多美化网站。
答案 13 :(得分:0)
答案 14 :(得分:0)
在Visual Studio中,可以先使用 public class RegisterViewModel
{
[Required]
[Display(Name = "Email")]
[EmailAddress]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
[Required(ErrorMessage = "Enter First Name:")]
[StringLength(maximumLength: 30, MinimumLength = 3)]
[MaxLength(30)]
[Display(Name = "First Name")]
public string firstName { get; set; }
[Required(ErrorMessage = "Enter Last Name:")]
[StringLength(maximumLength: 30, MinimumLength = 3)]
[MaxLength(30)]
[Display(Name = "Last Name")]
public string lastName { get; set; }
[Required(ErrorMessage = "Please Select Profile Picture")]
public IFormFile profilePicture { get; set; }
public string profilePictureName { get; set; }
[StringLength(200)]
[MaxLength(200)]
[Display(Name = "Add Facebook Link To Your Profile")]
[DataType(DataType.Url)]
public string facebookLink { get; set; }
[StringLength(200)]
[MaxLength(200)]
[Display(Name = "Add Instagram Link To Your Profile")]
[DataType(DataType.Url)]
public string instagramLink { get; set; }
[StringLength(200)]
[MaxLength(200)]
[Display(Name = "Add Twitter Link To Your Profile")]
[DataType(DataType.Url)]
public string twitterLink { get; set; }
[Required(ErrorMessage = "Enter Date Of Birth:")]
[DataType(DataType.Date)]
public DateTime DOB { get; set; }
[Required]
[Display(Name = "Registration No")]
public string season { get; set; }
[Required]
public string department { get; set; }
[Required]
public string roll { get; set; }
public IEnumerable<SelectListItem> seasons { get; set; }
public IEnumerable<SelectListItem> departments { get; set; }
}
然后使用Command Window
命令来调用Diff
Tools.DiffFiles
或菜单Command Window
打开Ctrl + W, A
View -> Other Windows -> Command Window
答案 15 :(得分:0)
您可以使用 Android Studio 来比较任意两个项目,它具有非常有用的功能,例如向左复制、向右复制等。 只需打开您的项目文件夹,然后从项目侧栏中右键单击文件夹选择比较并打开您要与之比较的其他项目
答案 16 :(得分:-1)
Visual Studio代码非常适用于此 - 打开文件夹,右键单击这两个文件并进行比较。
答案 17 :(得分:-1)
基本上你不能。
版本 1.52.1 以上均无效。
答案 18 :(得分:-2)
我相信这是Visual Studio 2012的更好的扩展之一,它被称为代码比较,可以找到here.
答案 19 :(得分:-4)
如果你正在使用TFS连接,那么右键单击你需要比较的文件(通过源代码管理浏览器),它会显示一个这样的窗口 -
现在更改源文件的路径:&#39; Souce Path:&#39;并通过VS比较工具进行比较。
同样,你可以比较同时比较文件夹所有文件的文件夹。