Creo que el "Algoritmo de diferencia genérico y reutilizable en C #" en Codeproject es el mejor que puede encontrar como motor .NET para diff / patch / merge. Hice un proyecto por mi cuenta con él y se adapta a mis necesidades con la mayoría de los escenarios. Hay uno o dos escenarios en el peor de los casos cuando el algoritmo hizo que el archivo de parche fuera más grande de lo necesario. Pero en la mayoría de los casos funciona bien para mí (archivos de texto con un tamaño de> 30 MB).
Actualmente estoy probando otro Codeproject-Project que puede encontrar aquí: http://www.codeproject.com/KB/applications/patch.aspx
Está usando algunas DLL de Microsoft para parchear, por lo que parece interesante. Pero esas DLL no están administradas y este proyecto es solo una especie de contenedor para él. Pero tal vez te pueda ayudar
Editar:
Acabo de encontrar otro proyecto, DiffPlex : http://diffplex.codeplex.com/
Es una combinación de una biblioteca de diferenciación de .NET con un visor de diferencias de Silverlight y HTML . Como se indica allí , DiffPlex es la biblioteca que CodePlex aprovecha para generar las diferencias de archivos.