Нет, SharePoint не позволяет сравнивать версии и их различия OOTB.
Насколько я могу сказать, SPDiffUtility
просто говорит вам разницу между двумя строками , но не поддерживает версии просто так. Сравнение версии все еще очень просто:
using (SPWeb web = new SPSite("http://sharepoint").OpenWeb())
{
SPList list= web.Lists["Shared Documents"];
SPFile file = list.Files["mydoc.doc"];
//Get all the versions
SPFileVersionCollection fileVersionCollection = file.Versions;
//Get the first version
SPFileVersion fileVersion= fileVersionCollection[3];
//Get the data
byte [] fileBytes = version.OpenBinary();
}
В основном вам нужно заглянуть в коллекцию SPFile.Versions
и сравнить имеющиеся у вас версии.
Проблема в том, что InfoPath хранит свой документ в формате XML, поэтому вам придется анализировать полученный XML-файл, чтобы извлечь все поля и увидеть их различия. Хорошим началом анализа XML-файла является создание файла класса для более легкого доступа к нему. код через xsd.exe
как например, объясненный здесь .