<p>Requirements:</p>

<ul>
<li>free, preferably open-source</li>
<li>implemented in one of the .NET managed langs</li>
</ul>

<p>Google found these:</p>

<ul>
<li><a href="http://www.codeproject.com/KB/recipes/diffengine.aspx" rel="noreferrer">A Generic, Reusable Diff
Algorithm</a> on codeproject</li>
<li><a href="http://www.mathertel.de/Diff/" rel="noreferrer">An O(ND) Difference Algorithm for C#</a></li>
<li><a href="http://razor.occams.info/code/diff/" rel="noreferrer">Diff/Merge/Patch Library for C#/.NET</a> by Joshua Tauberer</li>
</ul>

<p>EDIT:</p>

<p>No apps please, only libraries.</p>

I think the "Generic - Reusable Diff Algorithm in C#" on Codeproject is the best you can find as a .NET-Engine for diff/patch/merge. I made a project on my own with it and it fits my needs with most scenarios. There are one or two worst-case scencario when the algorithm made the patch-file larger than it have to be. But in most of the cases it works just fine for me (textfiles with a size of >30 MB).
I'm currently testing another Codeproject-Project you can find here:
http://www.codeproject.com/KB/applications/patch.aspx
It's using some DLLs from Microsoft for patching, so it looks interesting. But those DLLs are unmanaged and this project is only some sort of wrapper for it. But maybe it can help you
Edit:
Just found another project,
DiffPlex
:
http://diffplex.codeplex.com/
It's
a combination of a .NET Diffing Library with both a Silverlight and HTML diff viewer
. As stated
there
, DiffPlex is the library that CodePlex leverages to generate the diffs of files.