I've been a WinMerge user for years. Despite that work on the 2.x branch seemed to stop after the 2.14.0 release in 2013, I kept using it since it did all the things I needed it to do. However, there were a few annoying issues with certain compare scenarioshowever, so when all of sudden version 2.16.0 showed up, it was a welcome site.
The 2.16.0 version brought with it several new features, but I quickly noticed Visual Studio no longer opened it correctly when wanted to compare files. It turned out the addition of the 3-way compare/merge had changed the command line parameters. Reading up on WinMerge's Command Line interface and what Visual Studio can pass into a third party compare/merge tool, I got it working again.
Using the 32-bit version WinMergeU.exe is found
C:\Program Files (x86)\WinMerge\WinMergeU.exe
For Compare the Arguments should be
/e /u /wl /wr /dl %6 /dr %7 %1 %2
and for Merge they should be
/e /u /wl /dl %6 /dr %7 %1 %2 /o %4
Setting up External Tools for Compare and Merge in Visual Studio
So if the above looks great, but you have no idea on how to set it up, just open Visual Studio, click the Tools menu and select Options
Then under Source Control, select Visual Studio Team Foundation Server and click Configure User Tools...
After that you can click Add and configure Compare and Merge described above.