От MSDN
Объект FileStream, созданный этим методом (File.Create), имеет значение FileShare по умолчанию None; никакой другой процесс или код не могут получить доступ к созданному файлу, пока не будет закрыт оригинальный дескриптор файла.
Так что обходной путь
using(FileStream fs = File.Create(path + "\\file.xml"))
{
Byte[] info = new UTF8Encoding(true).GetBytes("<?xml version='1.0' encoding='utf-8' ?><project></project>");
fs.Write(info, 0, info.Length);
}
РЕДАКТИРОВАТЬ: Изменено удаление создания StreamWriter и использование FileStream
Однако мне не нравится этот способ, как предлагает MSDN.
StreamWriter имеет конструктор, который может получить FileStream, но я подумал, что если мы используем
using(StreamWriter sw = new StreamWriter(File.Create(path + "\\file.xml")))
{
sw.Write("<?xml version='1.0' encoding='utf-8' ?><project></project>");
}
мы вернемся к проблеме блокировки. Тем не менее, я проверил, и это работает.
Вероятно, конструктор StreamWriter делает некоторые трюки с FileStream, возвращаемым File.Create.