Мы недавно начали работать с XML-файлами, после многолетнего опыта работы со старыми INI-файлами.
Мой коллега нашел пример кода CodeProject, который использует System.Xml.XmlDocument.Save.Мы получаем исключения, когда две программы пытаются записать в один и тот же файл одновременно.
System.IO.IOException: процесс не может получить доступ к файлу 'C: \ Test.xml', поскольку он используется другим процессом.
Это кажется очевиднымОглядываясь назад, мы не ожидали этого, потому что доступ к файлам INI через Win32 API не имеет этого ограничения.Я предполагаю, что некоторые вызовы Win32 выполняют арбитраж, который работает на более высоком уровне, чем метод XmlDocument.Save.
Я надеюсь, что где-то в библиотеке .Net есть процедуры XML более высокого уровня, которые работают аналогичноWin32 работает, но не знаю, с чего начать.
Или, может быть, мы можем настроить наши права доступа к файлу, чтобы позволить нескольким программам писать в один и тот же файл?
Время короткое(как почти все проекты ПО), и если мы не сможем быстро найти решение, нам придется держать нос и возвращаться к файлам INI.